首先我要声明的是,我更熟悉c#中的枚举,而java中的枚举似乎是相当混乱的。
正如你所看到的,我试图在下一个例子中使用一个switch语句@ enums,但无论我做什么,我总是得到一个错误。
我收到的错误是:
限定的案例标签为SomeClass.AnotherClass.MyEnum。VALUE_A必须替换为不合格的enum常量VALUE_A
事情是我很理解这个错误,但我不能只写VALUE_A,因为enum位于另一个子类。有办法解决这个问题吗?为什么会发生在Java?
//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;
}
}
}
}