能在 Switch 中使用 String 吗?
从 Java 7 开始,我们可以在 switch case 中使用字符串,但这仅仅是一个语法糖。内部实现在 switch 中使用字符串的 hash code。
在Java 7中,switch开始支持String类型。
从本质来讲,switch对字符串的支持,其实是int类型值得匹配。
其实现原理为:通过对case后面的String对象调用hashCode()方法,得到一个int类型的hash值,然后用这个hash值来唯一标识这个case。
如果匹配,接着会调用字符串的String.equals()方法进行匹配,如果没有匹配成功,说明不存在。
String变量不能为null,同时,switch的case子句中使用的字符串也不能为null。
使用switch
语句时,String
类型的参数必须是非空的。
如果fruit
为null
,则会引发NullPointerException
。
因此,在使用switch
语句之前,请确保参数不为null
,或者在使用switch
之前添加适当的空值检查。