Ich habe eine Klasse, die ihre eigene Aufzählung wie folgt definiert:
public class Test
{
enum MyEnum{E1, E2};
public static void aTestMethod() {
Test2(E1); // << Gives "E1 cannot be resolved" in eclipse.
}
public Test2(MyEnum e) {}
}
Wenn ich MyEnum.E1 spezifiziere, funktioniert es gut, aber ich möchte es wirklich nur als "E1" haben. Irgendeine Idee, wie ich das erreichen kann, oder muss es in einer anderen Datei definiert werden, damit dies funktioniert?
SCHLUSSFOLGERUNG: Ich konnte die Syntax für den Import nicht korrekt ermitteln. Da mehrere Antworten darauf hinwiesen, dass dies möglich ist, werde ich diejenige auswählen, die mir die benötigte Syntax gegeben hat, und die anderen positiv bewerten.
Übrigens, ein WIRKLICH SELTSAMER Teil davon (bevor ich den statischen Import zum Laufen brachte), eine switch-Anweisung, die ich geschrieben hatte und die die Aufzählung verwendete, erlaubte es nicht, der Aufzählung ihren Typ voranzustellen - den ganzen Rest der Code benötigt es. Tut meinem Kopf weh.
switch
Inkonsistenz zu, die weniger erfahrene Java-Programmierer dazu bringt, sich am Kopf zu kratzen.Antworten:
Tatsächlich können Sie einen statischen Import einer verschachtelten Aufzählung durchführen. Der folgende Code lässt sich gut kompilieren:
quelle
Sie können einen statischen Import für eine verschachtelte Klasse durchführen:
quelle
Die Testklasse muss in einem Paket definiert sein, damit sie importiert werden kann.
Mit dem in
Test
( IT WORKS ) definierten Paket :Sie können verwenden:
Ohne definiertes Paket können Sie nicht verwenden ( FUNKTIONIERT NICHT ):
quelle