Java 7 支持使用Strings如下代码进行切换
switch (month.toLowerCase()) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
default:
monthNumber = 0;
break;
}
Java 是否equals()在每种String情况下都调用该方法?或者它依赖于==or intern()?
这是否等同于:
String month = month.toLowerCase();
if("january".equals(month)){
monthNumber = 1;
}else if("february".equals(month)){
monthNumber = 1;
}..
更新:
将 switch 表达式中的 String 与与每个 case 标签关联的表达式进行比较,就好像
String.equals正在使用该方法一样。
正如文档指出的那样,行为就像equals()被调用一样。