Instanziieren Sie die Enum-Klasse

8

Ü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?

    
MinusInfinity 31.05.2013, 06:51
quelle

8 Antworten

22
  

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 :

%Vor%

Wenn Sie erklärt haben, was Sie erreichen wollten, würde es Ihnen leichter fallen, Ihnen zu helfen.

    
Jon Skeet 31.05.2013, 06:54
quelle
12

Intern werden Enums in so etwas übersetzt

%Vor%

Sie sollten nicht und können nicht initialisiert werden.

    
Marc 31.05.2013 06:59
quelle
7

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.

    
NINCOMPOOP 31.05.2013 06:53
quelle
2

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%     
WeMakeSoftware 31.05.2013 06:55
quelle
1

Die Elemente in einer Enum sind Objekte, die Instanzen der Klasse sind.

Sie müssen kein Objekt von Enum erstellen.

Hier ist ein ähnliches Problem

Verweisen Sie auf

    
MaheshVarma 31.05.2013 06:57
quelle
1

Holen Sie sich ein gutes Buch über Java-Grundlagen und lesen Sie es.

Wie auch immer, Enums in Java sind Klassen mit einer festen Anzahl von Objekten und Objekte sind durch seine Attribute definiert.

Auch hier können Sie hier

nachlesen     
vineet 31.05.2013 06:58
quelle
1

Ü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.

%Vor%

Verwenden Sie class.getEnumConstants() function, um die Liste der Enum-Konstanten zu erhalten und diese Liste zu loopen und abzurufen.

%Vor%     
Mavlarn 06.06.2017 07:23
quelle
0

Ich beantworte die erste Frage. Sie können es einfach so machen:

%Vor%     
Bluetech91 14.06.2017 13:13
quelle

Tags und Links