enum Color {RED, GREEN, BLUE};
class SwitchEnum
{
public static void main(String[] args)
{
Color c = Color.GREEN;
switch(c)
{
case RED:
System.out.println("red");
break;
case GREEN:
System.out.println("green");
break;
case BLUE:
System.out.println("blue");
break;
}
}
}
El código anterior compila bien y da el resultado esperado.referencia enum en la caja del interruptor
Mi pregunta es por qué al crear la referencia de color 'c' necesitábamos referirnos con el nombre de la enumeración (es decir, Color.GREEN) pero en el bloque de casos solo bastaba el valor enum. ¿No debería haber sido
case Color.RED:
etc ???
+1 De hecho, * tiene * para usar el acceso directo. Ver [esta interesante publicación] (http://stackoverflow.com/q/8481635/697449) por ejemplo. –
@Paul: una etiqueta de caja de cambio enum ** DEBE ** ser el nombre _unqualified_ de una constante de enumeración. Entonces ... lo tengo ... – WickeD