在JDK1.6的版本中,switch后面的括号里面只能放int类型的值,是只能放int类型,
但是放byte,short,char类型的也可以。
是因为byte,short,shar可以自动提升(自动类型转换)为int。
而不能放long型和String型。
当使用long型的时候,出现下面的错误
翻译过来就是只有可变成int的和枚举能被使用
--------
而在JDK1.7的版本中,switch中可以使用字串String。但仍不支持long型。
String x = ""+333;
switch(x){
case "333":
System.out.println("OK");
break;
}
在MyEclipse中输入上面的代码,报如下错误
意思同上
但是同样的代码手动运行却是没问题的,验证通过。
结论:
即使JDK的版本为1.7,在myeclipse 也提示switch不能支持string。
这是因为myeclipse支持的jdk版本目前还不到1.7 compiler level最高才到6。
而换用Eclipse后即是没有问题的。