📅  最后修改于: 2023-12-03 15:05:26.765000             🧑  作者: Mango
Java 12 引入了新的 Switch 表达式,它允许我们更轻松、更清晰地编写 switch 语句。它是 Java 语言中的一种语法糖,让代码更加简洁易读。
switch (expression) {
case value1 -> statement1;
case value2 -> statement2;
...
case valueN -> statementN;
default -> defaultStatement;
}
其中,expression
表示一个需要被匹配的表达式,value1,value2,...,valueN
表示可匹配的值,statement1,statement2,...,statementN
表示对应值的执行语句块,defaultStatement
表示默认的执行语句块。
注意,与原始的 switch 语句不同,Switch 表达式必须包含一个默认的执行语句块(default),即使它没有任何执行语句。
Switch 表达式可以和 Lambda 表达式结合使用。
String result = switch(str) {
case "Hello" -> "Hi";
case "How are you" -> "I'm fine, thank you.";
case "Goodbye" -> {
System.out.println("Goodbye!");
yield "See you!";
}
default -> throw new IllegalStateException("Unexpected value: " + str);
};
其中,Switch 表达式的类型会被推断为 String
类型。如果 Switch 表达式不包含有返回值的语句,那么可以省略 yield
。
Switch 表达式可以和 Enum 结合使用。
public enum Status {
OPEN, CLOSED, CANCELED
}
String result = switch(status) {
case OPEN, CLOSED -> "Valid";
case CANCELED -> "Invalid";
};
System.out.println(result); // 输出 "Valid"
Switch 表达式提供了一种更加简洁易读的语法,使代码更加清晰。同时,它也增加了与 Lambda 表达式、Enum 的结合使用的可能性,让代码的可读性更高。