前言
在JDK23以前版本,instanceof关键字是不支持拓展基本类型,允许在所有模式上下文中使用原始类型,包括 long、float、double 和boolean等,但目前是预览属性
instanceof使用
JDK23以前是这么使用的,要使用引用类型
typescript
public class Instanceof1Demo {
public static void main(String[] args) {
Object data = 1;
if (data instanceof Integer) {
System.out.println(data);
} else {
System.out.println(2);
}
}
}
输出结果为
使用JDK23中的instanceof要先开启预览属性
typescript
public class Instanceof1Demo {
public static void main(String[] args) {
Object data = 1;
if (data instanceof int str) {
System.out.println(str);
} else {
System.out.println(2);
}
}
}
输出结果为
总结
JDK23中,JEP 455 的预览特性中,instanceof 全面支持所有原始类型,包括 byte, short, char, int, long, float, double, boolean,但是属于预览属性,没有转正,使不使用就看个人选择