我们知道在JDK1.6之前 switch语句只支持byte、char、short、int以及Enum,是不支持String类型的
JDK1.7之后加入了对String类型的支持,如下代码(需1.7以上版本):
public class Test
{
public static void main(String[] args)
{
String str = "c";
switch (str) {
case "a":
System.out.println("a");
break;
case "b":
System.out.println("b");
break;
case "c":
System.out.println("c");
break;
}
}
}
原理:JDK1.7在switch语句中可以支持String类型的参数,实际上,
这个新特性是在编译器层次实现的,而在java虚拟机和字节码层次上,还是只支持switch语句中使用与整数类型兼容的类型。
使用javap -c Test 查看编译后的字节码
F:\>javap -c Test
Compiled from "Test.java"
class Test {
Test()