Сначала я расскажу, что я гораздо лучше знаком с перечислениями на С#, и кажется, что перечисления в java - это довольно беспорядок.
Как вы можете видеть, я пытаюсь использовать оператор switch @enums в следующем примере, но всегда получаю ошибку независимо от того, что я делаю.
Ошибка, которую я получаю:
Квалифицированная метка case
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;
}
}
}
}