In the JDK 7 release, you can use a String object
in the expression of a switch statement:
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;
}
The switch statement compares the
String object in its expression with the expressions
associated with each case label as if it were using
the String.equals method; consequently, the comparison
of String objects in switch statements is
case sensitive. The Java compiler generates generally more
efficient bytecode from switch statements that use
String objects than from chained
if-then-else statements.