Czytałem i wdrażam scenariusz poprzez enum. Pomyślałem, że możemy utworzyć enum bez żadnej instancji. Jakie jest praktyczne zastosowanie takiego Enum
? Po drugie Enum
może również implementować interfejs , ale oczywiście nie może rozszerzać klasy, ponieważ już rozszerza klasę Enum
. Jakie są praktyczne zalety tworzenia Enum
bez instancji? BenJaka jest korzyść z tworzenia wyliczenia bez instancji?
Odpowiedz
enums Zero członkami są rzeczywiście narzędzie klasy idiom używany przez pewien segment społeczności Java (zwłaszcza, Peter Lawrey). Są najbardziej zwięzłym i prawdopodobnie najczystszym sposobem na zagwarantowanie, że klasa nie zostanie zainicjowana lub poddana podklasie.
Naturalnie w takim wyliczeniu nie będziesz miał żadnych metod instancji ; tylko statyczne.
Czy możesz podać przykład miejsca, w którym coś takiego się dzieje? Mogę myśleć o wielu, gdzie używana jest zwykła klasa (np. 'Java.lang.Math'), ale nie sądzę, żebym kiedykolwiek to widział. – arshajii
Ale pojawia się w sekcji "wyliczenia" w javadoc, niekoniecznie tam, gdzie byś go szukał. Ostateczna (dla jasności) klasa + prywatny konstruktor jest IMO standardowym idiomem dla takiego przypadku użycia (chociaż jest to funkcjonalnie równoważny). Zazwyczaj robi się to w JDK (w tym 8). – assylias
@arshajii 'Math' jest o wiele za stary, aby być" enum ". –
Enum
są typami odniesienia, takimi jak class
lub interfaces
. Oznacza to, że można dobrze dostosować zasadę "program to interface and not implementation".
członkami enum
niekoniecznie jest ustalony do końca wszechświata. Można dodać nowych członków bez zerwania porównywalności binarny. Więc mogę sobie wyobrazić, że enum
jest tworzony aby wymodelować koncepcję, która nie ma obecnie żadnych instancji, ale może być dodana później ..
Czy możliwe jest również utworzenie enum
dla koncepcji, która - jak wiemy - nigdy nie będzie miała żadnych wystąpień? Na przykład enum NegativeNaturalNumber{}
? służy w jakimkolwiek celu w programie? Kto wie, nie możemy z całą pewnością powiedzieć:
- 1. Jaka jest korzyść z przełomu w plonach?
- 2. Jaka jest korzyść z definiowania aplikacji kątowej?
- 3. Jaka jest korzyść z Log4j API?
- 4. Jaka jest korzyść z pozostałości po kanałach?
- 5. Jaka jest korzyść z atrybutu unsafe_unretained?
- 6. Jaka jest korzyść z klasy TelephoneNumberUtil?
- 7. Jaka jest prawdziwa korzyść z obiektywów?
- 8. Jaka jest korzyść z wyłączania generowania zestawów seryjnych?
- 9. Jaka jest korzyść z używania `exec` ponad` type() `podczas tworzenia klas w środowisku wykonawczym?
- 10. boost :: mpl :: for_each bez tworzenia instancji
- 11. Jaka jest korzyść z używania "wszystkich" w zapytaniu o media?
- 12. Jaka jest główna korzyść z używania HashMap w java?
- 13. Jaka jest korzyść z klasy QName i Operator?
- 14. Jaka jest korzyść z używania RichTextBox na TextBox?
- 15. Jaka jest prawdziwa korzyść z trybu zwolnienia dla ASP.Net
- 16. JavaScript tworzenia nowej instancji obiektów
- 17. Gdzie jest korzyść z używania wzorca strategii?
- 18. SpringFramework: wyjątek tworzenia instancji
- 19. Uzyskiwanie dostępu do właściwości konstruktora bez tworzenia nowej instancji
- 20. Jak sprawdzić, czy klasa dziedziczy inną klasę bez tworzenia instancji?
- 21. Jaki jest najskuteczniejszy sposób tworzenia instancji BigInteger z wartości int?
- 22. Czy mogę uzyskać rozmiar pola strukturalnego bez tworzenia instancji struktury?
- 23. Jaka jest korzyść z używania Fragmentów w systemie Android zamiast z widoków?
- 24. Co to jest korzyść z Wzoru Mostowego
- 25. Co to jest korzyść z używania Pendżabu
- 26. Jaka jest korzyść z fragmentów "echo", podczas gdy plik jest urywany?
- 27. tworzenia instancji MonadBaseControl dla newtype
- 28. Fabryczna metoda tworzenia instancji singleton
- 29. Dodać właściwość bez zmiennej instancji?
- 30. React Native - Jaka jest korzyść z używania StyleSheet vs zwykłego obiektu?
O tak. Ale wielu ankieterów zadaje to pytanie. Jeśli go nie ma, dlaczego ludzie z Javy na to zezwalają? Gdzieś może być, jest jakiś pożytek, nie jesteśmy tego świadomi. – benz
Zobacz także: http://stackoverflow.com/a/14900526/829571 – assylias