Jaka jest zalecana metoda ustawiania tytułu za pomocą setTitle("Title")
lub super("Title")
podczas rozszerzania zakresu javax.swing.JFrame
pod względem wydajności?Wywołanie konstruktora nadklasy za pomocą polecenia super lub just setTitle?
Odpowiedz
Jeśli grepcode JFrame
(w OpenJDK 6-B14) i kopać trochę widać, że konstruktor JFrame()
wywołuje konstruktor Frame()
, który nazywa Frame("")
(link).
Tak więc, ponieważ niejawny super()
został dodany, jeśli nie określisz osobiście żadnego super-konstruktora, będzie on (choć bardzo nieznacznie) bardziej skuteczny w wywołaniu super("Title")
.
Dobrą praktyką jest zawsze wywoływanie odpowiedniego super (.....) podczas rozszerzania klasy. Jak nigdy nie wiesz, jaka magia super konstruktor działa za sceną.
Nigdy nie potrzebujesz tylko
zadzwoń super();
Tak będzie, jeśli nie określisz niczego innego. Wystarczy tylko określić konstruktor zadzwonić, jeżeli:
- Chcecie wywołać konstruktor nadklasy który parametrami
- Chcesz łańcucha do innego konstruktora w tej samej klasie, a nie konstruktor nadklasy
Jeśli jesteś w swoim konstruktorze, spróbuj przekazać jak najwięcej funkcjonalności do super konstruktora. Możliwe, że możesz go uratować przed wykonaniem jakiejś pracy.
Na przykład, domyślny super konstruktor może utworzyć niektóre obiekty wewnętrzne, które zostaną po prostu nadpisane, gdy wywołasz program ustawiający. Jeśli natychmiast przekażesz poprawne dane, dajesz mu szansę na zwiększenie wydajności.
Ale myślę, że w tym konkretnym przypadku nie ma to większego znaczenia.
- 1. Wywołanie konstruktora "nadklasy" w kodzie JavaScript
- 2. Wywołanie awakeFromNib z nadklasy
- 3. Jak uzyskać wywołanie konstruktora kopiowania za pomocą konstruktora variadic?
- 4. Dlaczego wywołanie super() w konstruktorze?
- 5. Wywołanie metody z nadklasy Podklasa - JavaScript
- 6. Wywołanie konstruktora warunku
- 7. Jak przechwycić argument konstruktora super klasy?
- 8. Wywołanie super metody z poziomu super klasy
- 9. Wywołanie konstruktora z innego konstruktora w tej samej klasie
- 10. Wywołanie konstruktora typu generycznego?
- 11. Nawiązując do "tego" podczas wywoływania super konstruktora?
- 12. Wywołanie `super` z obsługi zdarzeń na kontrolerze Ember
- 13. RxJava - Just vs Od
- 14. Inicjalizuj pole przed uruchomieniem super-konstruktora?
- 15. Try-with-resources podczas wywoływania super konstruktora
- 16. getSupportActionBar(). SetTitle() vs toolbar.setTitle()
- 17. Warunkowo wywołanie konstruktora w C#
- 18. Wywołanie funkcji wirtualnej od konstruktora
- 19. Wywołanie metody z konstruktora w Coffeescript
- 20. Przejrzystość za pomocą polecenia wieloboków
- 21. Wywołanie odpowiedniego konstruktora w zależności od value_type: integer lub float
- 22. Wywołanie globalną funkcję z konstruktora
- 23. WindowManager.LayoutParams, dlaczego istnieje metoda setTitle?
- 24. Wywołanie super metody w kontrolerze sails.js
- 25. Co robi wywołanie super() w konstruktorze React?
- 26. Wywołanie super dla cellForRowAtIndexPath w Swift
- 27. jak wywołanie super w zamknięciu w Swift
- 28. Wielokrotne dziedziczenie Pythona: Wybranie, które super() wywołanie
- 29. Czy muszę wywołać [super init] lub [super initWithCoder], itp. Dla NSObject
- 30. Jak wsadowo konwertować pliki mp4 na ogg za pomocą ffmpeg za pomocą polecenia bash lub Ruby
Nie należy rozszerzać 'JFrame', wystarczy użyć instancji. Ale tak czy inaczej, równie dobrze możesz przekazać tytuł w konstruktorze, ponieważ mniej linii kodu tworzy/konfiguruje instancję. Zobacz także [Kiedy optymalizować] (http://en.wikipedia.org/wiki/Program_optimization#When_to_optimize). –
* wydajność *? Ile JFrames chcesz utworzyć? Miliony na sekundę? –