JDK 7 リリースでは、switch
文の式に String
オブジェクトを使用できます。
public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg) { String typeOfDay; switch (dayOfWeekArg) { case "Monday": typeOfDay = "Start of work week"; break; case "Tuesday": case "Wednesday": case "Thursday": typeOfDay = "Midweek"; break; case "Friday": typeOfDay = "End of work week"; break; case "Saturday": case "Sunday": typeOfDay = "Weekend"; break; default: throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg); } return typeOfDay; }
switch
文では、その式内の String
オブジェクトが、各 case
ラベルの式と比較されます。String.equals
メソッドを使用した場合と同様の比較が行われるため、結果として、switch
文の String
オブジェクトの比較では大文字と小文字が区別されます。通常、Java コンパイラで生成されるバイトコードの効率は、String
オブジェクトを使用する switch
文の方が、一連の if-then-else
文よりも高くなります。