Primeiro, afirmo que estou muito mais familiarizado com enumerações em C # e parece que enumerações em java são uma bagunça.
Como você pode ver, estou tentando usar uma instrução switch @ enums no meu próximo exemplo, mas sempre recebo um erro, não importa o que esteja fazendo.
O erro que recebo é:
O rótulo da caixa qualificado
SomeClass.AnotherClass.MyEnum.VALUE_A
deve ser substituído pela constante enum não qualificadaVALUE_A
O problema é que compreendi bem o erro, mas não posso simplesmente escrever o VALUE_A, pois o enum está localizado em outra subclasse. Existe alguma maneira de resolver este problema? E por que isso está acontecendo em 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;
}
}
}
}
Enum
é extremamente útil quando você pega o jeito - não é uma bagunça. Eles são muito mais flexíveis e práticos do que enums simples (apenas um valor inteiro rotulado), como visto em outras plataformas. Veja o Tutorial do Oracle . Descubra as otimizadasSet
/Map
implementações:EnumSet
&EnumMap
.