Jdk7新增的switch 语句中常量可以string类型,
例如:
@Test
public void test_1(){
String string = "hello";
switch (string) {
case "hello":
System.out.println(string);
break;
default:
throw new IllegalArgumentException("非法参数");
}
}
语法糖的背后,其实用的对待string 类型时候,用的是hashCode() 方法转换的.
所以string 类型不能为 NULL.
例如:
@Test
public void test_3(){
String string = null;
expectedException.expect(NullPointerException.class);
switch (string) {
case "hello":
System.out.println(string);
break;
default:
throw new IllegalArgumentException("非法参数");
}
}
会抛出异常
NullPointerException