简单
Switch中的字符串支持可用于处理数据而无需转换为枚举或if-else
逻辑。有时候打开String会更容易。
从JDK 7(项目硬币)邮件列表中的功能建议(@gnat答案)
为它的可切换常量引入一个枚举,每个感兴趣的字符串值一个,将在没有充分原因的情况下向程序添加另一种类型...
If-Else版本
这很短,但是很多if's
都很难阅读。这很慢。
if (color.equals("red")) {
System.out.println("Color is Red");
} else if (color.equals("green")) {
System.out.println("Color is Green");
} else {
System.out.println("Color not found");
}
枚举版本
需要定义枚举,这很好,但是有时不需要。
enum Color {RED, GREEN}
照常处理
try {
switch (Color.valueOf(color)) {
case RED:
System.out.println("Color is Red");
break;
case GREEN:
System.out.println("Color is Green");
break;
}
} catch (IllegalArgumentException e) {
System.out.println("Color not found");
}
JDK 7-switch语句版本中的字符串
我们可以处理而无需转换和定义其他类型。
switch (color) {
case "red":
System.out.println("Color is Red");
break;
case "green":
System.out.println("Color is Green");
break;
default:
System.out.println("Color not found");
}