シンプルさ
スイッチのサポートの文字列は、列挙型またはif-else
ロジックに変換せずにデータを処理するのに役立ちます。Stringを有効にする方が簡単な場合があります。
JDK 7(プロジェクトコイン)メーリングリストでの機能の提案(@gnat答え)
対象の文字列値ごとに1つの切り替え可能な定数の列挙型を導入すると、正当な理由なくプログラムに別の型が追加されます...
If-Elseバージョン
これは短いですが、多くif's
は読みにくいです。そして、これは遅いです。
if (color.equals("red")) {
System.out.println("Color is Red");
} else if (color.equals("green")) {
System.out.println("Color is Green");
} else {
System.out.println("Color not found");
}
列挙バージョン
列挙型を定義する必要があります。これは適切ですが、いつかは不要です。
enum Color {RED, GREEN}
通常通りの処理
try {
switch (Color.valueOf(color)) {
case RED:
System.out.println("Color is Red");
break;
case GREEN:
System.out.println("Color is Green");
break;
}
} catch (IllegalArgumentException e) {
System.out.println("Color not found");
}
JDK 7-switchステートメントバージョンの文字列
追加の型を変換および定義せずに処理できます。
switch (color) {
case "red":
System.out.println("Color is Red");
break;
case "green":
System.out.println("Color is Green");
break;
default:
System.out.println("Color not found");
}