Switch String
[TOC]
对String的处理
java 7
才开始支持Switch String
,实现方式是根据String
的hashCode
将String
映射到一个byte
上面,再采用switch
byte
的方式给予支持。
虽然本例是将
String
映射到了byte
,但不难相像如果Switch
分支过多的话,会映射到int
。
String str = "\"_";
final String s1 = "\"_";
final String s2 = "!~";
final String s3 = "hello";
/**
* s1 和 s2 有相同的 hashCode
*/
switch (str) {
case s1:
System.out.println(s1);
break;
case s2:
System.out.println(s2);
break;
case s3:
System.out.println(s3);
break;
default:
System.out.println("default");
break;
}
要明确几点
-
switch
不支持long
-
switch
中的case var:
var
必须是常量
网友评论