Zitat Zitat von Miau Beitrag anzeigen
Wie wäre denn dann die von Sun präferierte Lösung dieses Statements? Ich bin da gerade etwas ratlos, ich habe diese Art von Code auch in Java schon oft gesehen ...
Wie ich schon sagte: Enumerator (Aufzählungstyp).
Enums sind eine Spezialklassse.
Code:
public enum Months {
  JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE,
  JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER
}
Java baut daraus automatisch eine eigene Klasse, die so aussieht

Code:
class Months extends Enum { 
  public static final Weekday JANUARY  = new Months( "JANUARY",   0 ); 
  public static final Weekday FEBRUARY = new Months( "FEBRUARY ", 1 ); 
  ... 
 
  private Months( String s, int i ) { 
    super( s, i ); 
  }
}
Dann würde die Case-Anweisung z.B. wie folgt aussehen:

Code:
Months month = Months.FEBRUARY;

switch(month) {
  case JANUARY: ...
  case FEBRUARY: ...
  ...
}
Bei der Ampel würde das dann ähnlich aussehen. Nur dass wir hier drei werte im Enum haben: RED, YELLOW, GREEN

Sowas lässt sich auch besser lesen als Zahlen.