Überlege, ob ich die folgende Enum-Klasse habe,
%Vor%und in der folgenden Klasse versuche ich die Enum-Klasse zu testen,
%Vor% Hier gebe ich Sample.READ
an und übergebe es als Parameter an die Methode testEnumSample
.
Wenn wir stattdessen die enum-Klasse instanziieren und als Parameter übergeben wollen, was müssen wir tun?
Hier muss ich Sample.READ angeben, um es als Parameter zu übergeben. Wenn wir stattdessen die enum-Klasse instanziieren und als Parameter übergeben wollen, was müssen wir tun?
Was würde "die Enum-Klasse instanziieren"? Der Punkt einer Aufzählung ist, dass es eine feste Menge von Werten gibt - Sie können später nicht mehr erstellen. Wenn Sie dies tun möchten, sollten Sie keine Aufzählung verwenden.
Es gibt jedoch andere Möglichkeiten, Enum-Werte zu erhalten. Zum Beispiel könnten Sie den ersten deklarierten Wert erhalten:
%Vor% oder geben Sie den Namen ein und verwenden Sie Sample.valueOf
:
Wenn Sie erklärt haben, was Sie erreichen wollten, würde es Ihnen leichter fallen, Ihnen zu helfen.
Enums unterstützt keine öffentlichen Konstruktoren und kann daher nicht instanziiert werden. Enums sind für, wenn Sie einen festen Satz von verwandten Konstanten haben. Für jede Enum-Konstante wird genau eine Instanz erstellt.
Sie können keine neue enum-Instanz erstellen. Sonst wird es kein Enum sein. Sie können auf eine bereits vorhandene Enumeration verweisen. Wie in Ihrem Beispiel
%Vor%Die Elemente in einer Enum sind Objekte, die Instanzen der Klasse sind.
Sie müssen kein Objekt von Enum
erstellen.
Überprüfen Sie meine Antwort in einem anderen Beitrag .
Es gibt zwei Möglichkeiten:
Benutze Enum.valueOf()
statische Funktion und wirf sie dann in deinen Enum-Typ.
Verwenden Sie class.getEnumConstants()
function, um die Liste der Enum-Konstanten zu erhalten und diese Liste zu loopen und abzurufen.
Ich beantworte die erste Frage. Sie können es einfach so machen:
%Vor%