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.