对象的空实例

Null instanceof Object

我正在尝试一些东西,我写了这段代码,

boolean x = null instanceof Object;
Object o = null; 
boolean y = o instanceof Object;

两者都返回 false 也就不足为奇了。令我惊讶的是,IntelliJ IDEA 抱怨 y 总是 false 但没有说任何关于 x 的事情。这是否暗示着什么?

这可能只是意味着 IDE代码分析器不支持此 "use case"。分析器可能(有意)编码以检测先前分配给 null 的变量的使用,因为这是编码时很常见的错误,但 null instance of Object 的情况并不常见因为很少有程序员会写这个而实际上意味着别的东西。

有很多这样的结构无法被 Sonar、Eclipse 或 IDEA 等静态代码分析器正确检测到。我不会太担心它,请注意 IDE 无法发现您在代码中犯的每一个错误。