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
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.
Enum
sind Referenztypen wie class
oder interfaces
. Das bedeutet, Sie können
gut passen das Prinzip, " Programm zu Schnittstelle und nicht Implementierung" .
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.
Tags und Links java