最初に、私はC#の列挙型に非常に精通しており、Javaの列挙型はかなり混乱しているように思われることを述べます。
ご覧のとおり、次の例ではswitchステートメント@ enumsを使用しようとしていますが、何をしていても常にエラーが発生します。
私が受け取るエラーは次のとおりです。
修飾されたケースラベル
SomeClass.AnotherClass.MyEnum.VALUE_A
は、修飾されていない列挙型定数に置き換える必要がありますVALUE_A
問題は、エラーを完全に理解していることですが、列挙型が別のサブクラスにあるため、VALUE_Aを書き込むことはできません。この問題を解決する方法はありますか?そして、なぜそれが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;
}
}
}
}