Java instanceof 运算符详解
instanceof 是 Java 中的一个二元运算符,用于在运行时检查一个对象是否是一个特定类(或接口)的实例,或者是否是其子类(或接口实现类)的实例。
它的主要作用是进行类型检查,通常在进行类型转换(向下转型)之前使用,以确保转换的安全,避免抛出 ClassCastException。
基本语法
object instanceof Type
-
object:要测试的对象引用
-
Type:一个类、接口或者数组类型
返回值:一个布尔值 (true 或 false)
-
如果
object是Type类型,或者是其子类/实现类,则返回true -
否则,返回
false -
如果
object是null,则instanceof总是返回false
模式匹配 (Java 16+)
从 Java 16 开始,instanceof 支持模式匹配 (Pattern Matching),允许将检查和转型合并到一步中。
传统方式:
使用模式匹配的方式:
if (myAnimal instanceof Dog myDog) { // 直接声明模式变量 myDog myDog.bark(); // myDog 在这里已经是 Dog 类型了 }
优点:
-
更简洁:减少了显式转型的代码
-
更安全:消除了错误转型的可能性
-
更易读:逻辑更清晰

浙公网安备 33010602011771号