java switch instanceof
时间: 2023-11-11 18:00:04 浏览: 33
Java中的switch语句可以使用instanceof关键字来判断对象的类型,从而执行相应的代码块。例如:
```
Object obj = new Integer(100);
switch (obj) {
case Integer i:
System.out.println("Integer: " + i);
break;
case String s:
System.out.println("String: " + s);
break;
default:
System.out.println("Unknown type");
}
```
输出结果为:Integer: 100
这里使用了Java 14中的新特性,即switch语句支持使用类型模式(Type Patterns)。
相关问题
java17 switch用法
Java 17 中的 switch 语句可以用于多种情况,包括:
1. 基本数据类型的比较,如 int、char、byte、short 等。
2. 枚举类型的比较。
3. 字符串类型的比较。
4. 支持多个 case 分支执行同一段代码。
5. 支持 switch 表达式,可以在 case 分支中使用表达式。
6. 支持用 yield 返回值,可以在 case 分支中返回值。
7. 支持使用箭头函数。
下面是 switch 语句的示例:
```java
public class SwitchExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("Invalid day");
break;
}
}
}
```
此外,Java 17 还添加了一种新的 switch 语句形式,称为“带有模式的 switch 语句”,它支持在 case 分支中使用模式匹配。这个新特性可以简化代码、提高可读性。下面是示例:
```java
public class SwitchExample {
public static void main(String[] args) {
Object obj = "Hello World";
switch (obj) {
case String s && s.length() > 5:
System.out.println("String with length greater than 5: " + s);
break;
case String s:
System.out.println("String: " + s);
break;
case Integer i && i > 0:
System.out.println("Positive integer: " + i);
break;
case Integer i:
System.out.println("Integer: " + i);
break;
case null:
System.out.println("null");
break;
default:
System.out.println("Unexpected object: " + obj);
break;
}
}
}
```
上面的示例中,我们使用了模式匹配来判断对象的类型,并分别处理不同的情况。这样可以在一定程度上避免类型转换和 instanceof 的使用。
java21 新特性
Java 21 的新特性如下:
1. 模式匹配 instanceof 操作符:Java 21 引入了新的模式匹配 instanceof 操作符,可以通过模式匹配来简化类型转换的代码。
2. 本地模式变量:Java 21 允许在方法体内使用本地变量的模式,使得代码更加简洁易读。
3. switch 表达式的增强:Java 21 对 switch 表达式进行了增强,可以使用箭头语法和多个表达式作为一个分支的结果。
4. raw 字符串:Java 21 引入了 raw 字符串,可以在字符串中保留原始格式,不再需要使用转义字符。
5. 数字操作器的改进:Java 21 对于数字操作器进行了改进,包括新的数值范围检查操作、新的数值运算方法等。
6. 增强的异步编程:Java 21 提供了更加强大和简化的异步编程功能,包括 CompletableFuture 的新方法和改进的异步流。
7. 序列化 API 的改进:Java 21 对序列化 API 进行了改进,提供了更加灵活、高效和安全的序列化机制。
8. 增强的性能和安全性:Java 21 在性能和安全性方面进行了一系列的优化和改进,使得 Java 程序更加高效和安全。