在 Java 12 中,switch
表達(dá)式得到了一些改進和新特性。以下是一些關(guān)于 Java 12 中 switch
表達(dá)式的新特性:
switch
表達(dá)式語法,允許你在一個表達(dá)式中處理多個值。這被稱為 “模式匹配”(pattern matching)。示例:
int dayOfWeek = 3;
String day = switch (dayOfWeek) {
case 1, 2, 3, 4, 5 -> "工作日";
case 6, 7 -> "周末";
default -> throw new IllegalStateException("Invalid day: " + dayOfWeek);
};
System.out.println(day); // 輸出 "工作日"
switch
表達(dá)式的類型推斷得到了改進。如果 switch
表達(dá)式的所有分支都返回相同類型的值,那么編譯器可以自動推斷出 switch
表達(dá)式的類型,而無需顯式指定。switch
表達(dá)式不能直接在 default
分支中拋出異常。但在 Java 12 中,你可以在 default
分支中使用 throw
語句來拋出異常。switch
表達(dá)式對枚舉類型有更好的支持。你可以直接在 case
標(biāo)簽中使用枚舉常量,而無需調(diào)用 name()
方法或進行其他轉(zhuǎn)換。示例:
enum Color {
RED, GREEN, BLUE
}
Color color = Color.RED;
String colorName = switch (color) {
case RED -> "紅色";
case GREEN -> "綠色";
case BLUE -> "藍(lán)色";
};
System.out.println(colorName); // 輸出 "紅色"
switch
表達(dá)式支持,但你可以通過將字符串轉(zhuǎn)換為枚舉或其他類型來實現(xiàn)類似的功能。switch
表達(dá)式支持,但你可以通過將集合轉(zhuǎn)換為其他類型(如枚舉、數(shù)字等)來實現(xiàn)類似的功能。請注意,上述示例中的代碼可能需要根據(jù)你的具體需求進行調(diào)整。