在Java5以前,switch(expr)中,exper只能是byte,short,char,int类型。
从Java5开始,java中引入了枚举类型,即enum类型。
从Java7开始,exper还可以是String类型。
但是long在所有版本中都是不可以的。
为什么jdk1.7后又可以用string类型作为switch参数呢?
其实,jdk1.7并没有新的指令来处理switch string,而是通过调用switch中string.hashCode,将string转换为int从而进行判断。
本文回顾了Java中switch语句的发展历程,从Java5引入枚举类型到Java7允许使用String作为switch参数。解析了为何JDK1.7后能使用String类型,实际上是通过调用String的hashCode方法转换为int型进行比较。

被折叠的 条评论
为什么被折叠?



