que tienen una sentencia switch en Java, en una enumeración, que vamos a llamar a IMyInterface.MyEnumEn las sentencias de cambio de Java en las enumeraciones, ¿por qué recibo un error de compilación cuando califico mis valores en cada caso?
Cada uno de mis declaraciones de caso tiene la forma: IMyInterface.MyEnum.MyValue, (aunque podría caer el IMyInterface si Importé)
Sin embargo, el compilador (Java 6) arroja un error: "La etiqueta de caso calificada IMyInterface.MyEnum.MyValue debe reemplazarse con la constante de enumeración sin enumerar MyValue".
Obviamente puedo hacer eso, pero por mi vida no entiendo cuál es el propósito de este error. Claramente, si el compilador puede manejar el valor real, debería ser capaz de tratar con el nombre completo como lo haría con las constantes. De hecho, habría supuesto que el compilador convierte la constante en el nombre completo.
Entonces, gurús de Java, ¿cuál es la razón detrás de esto? ¡Gracias!
Personalmente, no me importa que las enumeraciones no puedan calificarse en bloques de cajas de interruptores; hace que el código sea más legible. Tenga en cuenta que para las clases enum que posee (en el código que puede editar), la mejor práctica es nunca utilizar un bloque de caja de conmutadores. Los métodos específicos de constante de Enum son más fáciles de mantener y menos frágiles que Switch-case en esta situación. – scottb