switch auf Strings seit Java 7
2 Kommentar(e). Veröffentlicht von Christian Ullenboom am Samstag, November 14, 2009.Seit Java 7 sind switch-Anweisungen auf String-Objekten möglich.
String input = javax.swing.JOptionPane.showInputDialog( "Eingabe" );
switch ( input.toLowerCase() )
{
case "kekse":
System.out.println( "Ich mag Keeeekse" );
break;
case "kuchen":
System.out.println( "Ich mag Kuchen" );
break;
case "scholokade":
case "lakritze":
System.out.println( "Hm. lecker" );
break;
default:
System.out.printf( "Kann man %s essen?", input );
}
Obwohl Zeichenkettenvergleiche nun möglich sind, fallen Überprüfungen auf reguläre Ausdrücke leider heraus, die insbesondere Skriptsprachen anbieten.

Im Kleinen vielleicht noch sinnvoll.
Hier ist die Frage, ob das zu besserem Code führt...
Ansonsten wäre das StrategyPattern doch anwendbar:
Map<String, MyStrategy> strats;
strats.put("kekse", new ImLovingCookiesStratey());
strats.put("kuchen", new CakePleaseStrategy());
...
strats.put("default", new WillYouReallyEatThisStrategy());
MyStrategy currStrat = strats.get(input.toLowerCase());
if (currStrat==null)
currStrat = strats.get("default");
currStrat.execute(input, ...);
Natürlich könnte das ganze noch in einen Kontext eingebettet werden, um das Strategiemuster vollständig zu machen (hier nicht gemacht).