Primero declararé que estoy mucho más familiarizado con las enumeraciones en C # y parece que las enumeraciones en Java son un desastre.
Como puede ver, estoy tratando de usar una instrucción switch @ enums en mi próximo ejemplo, pero siempre recibo un error sin importar lo que esté haciendo.
El error que recibo es:
La etiqueta de caso calificada
SomeClass.AnotherClass.MyEnum.VALUE_A
debe ser reemplazada por la constante enum no calificadaVALUE_A
La cuestión es que entiendo bastante el error, pero no puedo escribir el VALOR_A ya que la enumeración se encuentra en otra subclase. ¿Hay alguna manera de resolver este problema? ¿Y por qué está sucediendo en 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
es extremadamente útil una vez que los dominas, en absoluto un desastre. Son mucho más flexibles y prácticos que las enumeraciones simples (simplemente un valor entero etiquetado) como se ve en otras plataformas. Vea el Tutorial de Oracle . Descubra el optimizadoSet
/Map
implementaciones:EnumSet
&EnumMap
.