400 Stimmen

Java: Verwendung der switch-Anweisung mit enum unter subclass

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 werden VALUE_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;
            }
        }
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X