Was bringt es, eine Enum ohne Instanz zu erstellen?

8

Ich las und implementierte Szenarien durch enum. Ich habe herausgefunden, dass wir ein Enum erstellen können ohne jede Instanz. Was ist der praktische Nutzen einer solchen Enum ? Zweitens kann Enum auch implementieren eine Schnittstelle, aber kann natürlich eine Klasse nicht erweitern, da sie bereits die Klasse Enum erweitert. Was sind praktische Vorteile beim Erstellen eines Enum ohne Instanzen? Ben

    
benz 22.07.2013, 16:58
quelle

3 Antworten

10

Zero-Member-Enums sind eigentlich ein Utility-Klasse -Idiom, das von einem bestimmten Segment der Java-Community verwendet wird (vor allem Peter Lawrey ). Sie sind der prägnanteste und wohl der sauberste Weg zu garantieren, dass die Klasse nicht instanziiert oder unterklassifiziert werden kann.

Natürlich werden Sie keine Instanz Methoden in einer solchen Enum haben; nur statische.

    
Marko Topolnik 22.07.2013, 17:04
quelle
2

Enum sind Referenztypen wie class oder interfaces . Das bedeutet, Sie können gut passen das Prinzip, " Programm zu Schnittstelle und nicht Implementierung" .

    
Vikas V 22.07.2013 17:14
quelle
0

Mitglieder eines enum sind nicht unbedingt bis zum Ende des Universums festgelegt. Sie können neue Elemente hinzufügen, ohne die binäre Vergleichbarkeit zu beeinträchtigen. Ich kann mir also vorstellen, dass ein enum erstellt wird, um ein Konzept zu modellieren, das zur Zeit keine Instanzen hat, aber später hinzugefügt werden kann.

Ist es auch möglich, dass ein enum für ein Konzept erstellt wird, von dem wir wissen, dass es niemals Instanzen geben wird? Zum Beispiel enum NegativeNaturalNumber{} ? Könnte es irgendeinen Zweck in einem Programm erfüllen? Wer weiß, können wir nicht mit Sicherheit sagen.

    
ZhongYu 22.07.2013 18:59
quelle

Tags und Links