jdk12中switch新写法
时间: 2024-03-02 22:05:43 浏览: 91
在 JDK 12 中,引入了一种新的 switch 语法,称为“Switch 表达式”,它可以将 switch 语句作为一个表达式来使用。这种新的写法可以简化代码,并且可以提供更好的可读性和可维护性。
下面是一个使用 Switch 表达式的示例代码:
```java
int day = 3;
String dayType = switch(day) {
case 1, 2, 3, 4, 5 -> "Weekday";
case 6, 7 -> "Weekend";
default -> throw new IllegalArgumentException("Invalid day: " + day);
};
```
在上面的代码中,我们使用了一个 Switch 表达式来将一个整数值 day 转换为一个字符串类型的 dayType。在 Switch 表达式中,我们使用了箭头符号 -> 来表示每个 case 分支的返回值,而不是使用传统的冒号符号。我们还可以使用逗号来将多个 case 值合并成一个分支。在默认分支中,我们使用了 throw 语句来抛出一个异常,表示 day 的值是无效的。
需要注意的是,Switch 表达式只能用于 JDK 12 或更高版本的 Java 中。如果你在 JDK 11 或更早版本中使用 Switch 表达式,将会出现编译错误。
相关问题
java switch JDK14新写法
可以回答这个问题。JDK14中引入了新的 switch 表达式,可以使用箭头语法。例如:
```
String day = switch (dayOfWeek) {
case MONDAY, FRIDAY, SUNDAY -> "English";
case TUESDAY -> "Martes";
case THURSDAY, SATURDAY -> "Hindi";
case WEDNESDAY -> "Miércoles";
default -> {
int numLetters = dayOfWeek.name().length();
yield numLetters + " letters";
}
};
```
jdk7和jdk8中switch区别
在 JDK7 中,switch 语句只能使用整数类型 (int、byte、short、char) 和枚举类型作为表达式的值。而在 JDK8 中,switch 语句可以使用字符串类型作为表达式的值。
另外,在 JDK7 中,switch 语句只能使用常量表达式作为 case 标签,而在 JDK8 中,case 标签可以是常量表达式,也可以是枚举常量,甚至可以是字符串常量。
JDK8 还引入了 switch 语句的另一个新特性,即可以使用 lambda 表达式来实现 switch 语句的 case 标签。例如:
```java
int num = 10;
switch (num) {
case 1 -> System.out.println("One");
case 2 -> System.out.println("Two");
case 3 -> System.out.println("Three");
default -> System.out.println("Other");
}
```
这种写法可以让 switch 语句的代码更加简洁,易于阅读。
阅读全文