📜  switch 表达式 java (1)

📅  最后修改于: 2023-12-03 15:05:26.765000             🧑  作者: Mango

Java Switch 表达式

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),即使它没有任何执行语句。

与 Lambda 表达式的结合

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

与 Enum 的结合

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 的结合使用的可能性,让代码的可读性更高。