Qual è il metodo consigliato per impostare il titolo con setTitle("Title")
o super("Title")
mentre si estende javax.swing.JFrame
in termini di prestazioni?Chiamando il costruttore di superclasse con super o semplicemente setTitle?
risposta
Se grepcode JFrame
(in OpenJDK 6-B14), e scavare un po ', si vede che il costruttore JFrame()
chiama il costruttore Frame()
, che chiama Frame("")
(link).
Quindi, poiché è stato aggiunto un numero implicito super()
se non si specifica una chiamata a un super costruttore, sarebbe (anche se leggermente troppo) più efficace chiamare super("Title")
.
È buona norma chiamare sempre il super corrispondente (.....) quando si estende una classe. Come non sai mai quale magia fa il super costruttore dietro la scena.
Non è mai necessario solo
chiamata super();
Questo è ciò che sarà lì se non si specifica qualcos'altro. Hai solo bisogno di specificare il costruttore per chiamare se:
- Si desidera chiamare un costruttore della superclasse che ha parametri
- Volete catena ad un altro costruttore della stessa classe al posto del costruttore della superclasse
Se siete nel vostro costruttore, provate a delegare quante più funzionalità possibili al super costruttore. È possibile che tu possa salvarlo dal fare un po 'di lavoro.
Ad esempio, il super costruttore di default potrebbe creare alcuni oggetti interni che verranno semplicemente sovrascritti quando si chiama il setter. Se si passano immediatamente i dati corretti, gli si dà l'opportunità di essere più efficienti.
Ma penso che in questo caso specifico, non importa molto.
- 1. Chiamando il costruttore di un tipo generico
- 2. Implicitamente chiamando costruttore di copia
- 3. Invoca il costruttore "superclasse" in JavaScript
- 4. Perché chiamare super() in un costruttore?
- 5. super() nel costruttore
- 6. FragmentManager incompatibile con FragmentStatePagerAdapter super costruttore
- 7. Devo chiamare [super init] o [super initWithCoder], ecc. Per NSObject
- 8. Chiamare super costruttore in C#
- 9. È possibile eseguire il calcolo prima di super() nel costruttore?
- 10. Attori remoti Akka, superclasse senza costruttore predefinito
- 11. BPMS o semplicemente programmazione?
- 12. Java Reflection chiamando costruttore con i tipi primitivi
- 13. Chiamare la superclasse da un costruttore sottoclasse in Java
- 14. Objective-C: Quando chiamare self.myObject contro semplicemente chiamando myObject
- 15. ES6 classe super() con argomenti variadici
- 16. chiamando @PostConstruct su fagioli super e si estende fagioli
- 17. WatchKit: ritardo setTitle?
- 18. getSupportActionBar(). SetTitle() vs toolbar.setTitle()
- 19. ereditarietà Javascript: chiamare il super-costruttore o utilizzare la catena del prototipo?
- 20. Chiamare il super metodo di super
- 21. costruttore o copia costruttore?
- 22. Differenza di comportamento tra super() .__ init __() e superclasse esplicita __init __() in Python
- 23. 'super' di funzione o di classe
- 24. UIButton setTitle forState Not Working
- 25. Come intercettare l'argomento del costruttore di super-classe?
- 26. Ottieni il nome della superclasse in ES6
- 27. In Java, è possibile chiamare il costruttore della superclasse di una classe genitore tramite il costruttore della classe figlio della classe genitore?
- 28. C++ 11 chiamando costruttore dal costruttore della stessa classe di tipo
- 29. Perché un costruttore di classe base privato risulta in "Costruttore super implicito non visibile"
- 30. Uso della parola chiave 'super' quando si accede a metodi di superclasse non sovrascritti
Non estendere 'JFrame', basta usare un'istanza. Ma in entrambi i casi, si può anche passare il titolo nel costruttore per il fatto che sono meno linee di codice per creare/configurare un'istanza. Vedi anche [Quando ottimizzare] (http://en.wikipedia.org/wiki/Program_optimization#When_to_optimize). –
* prestazioni *? Quanti JFrames vuoi creare? Milioni di secondi? –