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;
}
}
}
Powyższy kod jest kompilowany poprawnie i daje oczekiwany wynik.wyliczanie enum w przypadku przełącznika
Moje pytanie brzmi: dlaczego tworząc odniesienie do koloru "c", musieliśmy odnieść je poprzez nazwę enum (tzn. Color.GREEN), ale w bloku case wystarczyła tylko wartość wyliczeniowa. Nie powinien być
case Color.RED:
itp. ???
+1 W rzeczywistości * masz *, aby użyć skrótu. Zobacz [ten interesujący post] (http://stackoverflow.com/q/8481635/697449) na przykład. –
@Paul: Etykieta przypadku enum switch ** MUSI ** być _naqualified_ nazwą stałej wyliczeniowej. thnx ... mam to ... – WickeD