public class Test {
private static final String BAZ = "baz";
private void stringSwitch() {
final String bar = "bar";
String key = "key";
switch (key) {
case "": {
System.out.println("Nothing");
break;
}
case "foo": // fallthrough works as before
case bar: // local final variables are ok
case BAZ: { // constants are ok
System.out.println("Matched key");
break;
}
default:
break;
}
}
private void illegalStringSwitch() {
String foo = "foo";
String key = "key";
switch (key) {
case foo:
case getStringValue(): {
System.out.println("illegal");
break;
}
default:
break;
}
}
private String getStringValue() {
return "";
}
}