Java switch语句中支持String类型常量的实现

在Java 7 以后,switch语句可以用作String类型上。

从本质来讲,switch对字符串的支持,其实也是int类型值的匹配。它的实现原理如下:

通过对case后面的String对象调用hashCode()方法,得到一个int类型的Hash值,然后用这个Hash值来唯一标识着这个case
那么当匹配的时候,首先调用这个字符串的hashCode()方法,获取一个Hash值(int类型),用这个Hash值来匹配所有的case
如果没有匹配成功,说明不存在;如果匹配成功了,接着会调用字符串的equals()方法进行匹配。

由此看出,String变量不能是null;同时,switchcase子句中使用的字符串也不能为null。

switch(var){

case  var1:

default:

}

上面的语句中var1可以是字面量也可以是final String ;

如果var为null 会抛出NullPointerException

猜你喜欢

转载自blog.csdn.net/aa1382525/article/details/84849143
今日推荐