一尘不染

在调用 instanceof 之前是否需要检查空值?

javascript

将null instanceof SomeClass返回false或抛出一个NullPointerException?


阅读 182

收藏
2022-02-23

共1个答案

一尘不染

不,在使用 instanceof 之前不需要进行空值检查。

表达式x instanceof SomeClassfalseif xis null

Java 11 语言规范在第 15.20.2 节“类型比较运算符 instanceof”中简洁地表达了这一点。(在引入 instanceof 模式匹配之后,Java 17 表达得不太简洁。)

“在运行时, instanceof运算符的结果是true如果RelationalExpression的值 不是null,并且可以将引用强制转换为ReferenceType 而不会引发 a ClassCastException。否则结果是false。”

因此,如果操作数为空,则结果为假。

2022-02-23