Java 12 Switch表达式

来源:这里教程网 时间:2026-02-17 21:24:08 作者:

Java 12 Switch表达式

Java 12引入了表达式在Switch语句中的用法,并将其作为预览特性发布。以下是新的Switch表达式引入的变化:

没有穿透效应。不需要break语句来阻止穿透。单个case可以有多个常量标签。现在必须有默认case。

考虑以下示例:

ApiTester.java

public class APITester {   public static void main(String[] args) {      System.out.println("Old Switch");      System.out.println(getDayTypeOldStyle("Monday"));      System.out.println(getDayTypeOldStyle("Saturday"));      System.out.println(getDayTypeOldStyle(""));      System.out.println("New Switch");      System.out.println(getDayType("Monday"));      System.out.println(getDayType("Saturday"));      System.out.println(getDayType(""));   }   public static String getDayType(String day) {      String result = switch (day) {         case "Monday", "Tuesday", "Wednesday","Thursday", "Friday" -> "Weekday";         case "Saturday", "Sunday" -> "Weekend";         default -> {            break "Invalid day.";                     }      };      return result;   }   public static String getDayTypeOldStyle(String day) {      String result = null;      switch (day) {         case "Monday":         case "Tuesday":         case "Wednesday":         case "Thursday":         case "Friday":            result = "Weekday";            break;         case "Saturday":          case "Sunday":            result = "Weekend";            break;         default:            result =  "Invalid day.";                  }      return result;   }}

编译和运行程序

$javac -Xlint:preview --enable-preview -source 12 APITester.java$java --enable-preview APITester

输出

Old SwitchWeekdayWeekendInvalid day.New SwitchWeekdayWeekendInvalid day.

相关推荐