增强版 Switch
在 Java 14 中,switch
表达式(Switch Expressions) 正式从预览功能(Java 12/13 引入的预览特性)升级为标准功能。
在之前,Switch只是一个控制流程的语句,且像C语言一样必须记得 break
,代码冗长。
而新版本则将其视为一个表达式,且支持箭头语法糖,以及分支内可以使用代码块(返回值使用 yield 关键字),分支全覆盖检测。
例如,一个旧版本的代码可以优化为:
public class OldSwitchExample {
public static void main(String[] args) {
String day = "MONDAY";
int result;
switch (day) {
case "MONDAY":
result = 1;
break;
case "TUESDAY":
result = 2;
break;
case "WEDNESDAY":
result = 3;
break;
default:
result = 0;
}
System.out.println("Result: " + result);
}
}
优化后:
public class NewSwitchExample {
public static void main(String[] args) {
String day = "MONDAY";
// 使用 switch 表达式,直接返回值,避免了显式声明和赋值
int result = switch (day) {
case "MONDAY" -> 1; // 使用 '->' 语法,简化分支逻辑
case "TUESDAY" -> 2;
case "WEDNESDAY" -> 3;
default -> 0; // default 分支处理未匹配的情况
};
System.out.println("Result: " + result); // 打印结果
}
}
更具体的空指针报错
Java 14 之前:
Java 14 之后: