Zunächst werde ich feststellen, dass ich viel mehr vertraut mit Enums in C# und es scheint, wie Enums in Java ist ein ganzes Chaos.
Wie Sie sehen können, versuche ich, in meinem nächsten Beispiel eine switch-Anweisung @ enums zu verwenden, aber ich erhalte immer einen Fehler, egal was ich tue.
Der Fehler, den ich erhalte, lautet:
Die qualifizierte Fallbezeichnung
SomeClass.AnotherClass.MyEnum.VALUE_A
muss durch die unqualifizierte Enum-Konstante ersetzt werdenVALUE_A
Die Sache ist die, dass ich ziemlich verstehen den Fehler, aber ich kann nicht einfach den VALUE_A schreiben, da sich das Enum in einer anderen Unterklasse befindet. Gibt es eine Möglichkeit, dieses Problem zu lösen? Und warum tritt es in Java auf?
//Main Class
public class SomeClass {
//Sub-Class
public static class AnotherClass {
public enum MyEnum {
VALUE_A, VALUE_B
}
public MyEnum myEnum;
}
public void someMethod() {
MyEnum enumExample //...
switch (enumExample) {
case AnotherClass.MyEnum.VALUE_A: { <-- error on this line
//..
break;
}
}
}
}