Java - null instanceof Object计算结果为true和false

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (62)

当我编译并运行此代码时:

public class Testing {
    public static void main(String... args) {
        Object obj = null;
        if (obj instanceof Object) {
            System.out.println("returned true"); 
        } else {
            System.out.println("returned false"); 
        }
        System.out.println(" " + obj instanceof Object);
    }
}

我在命令行中得到这个:

C:\Users\xxxxxx\Desktop>java Testing
returned false
true

不应该“null instanceof someType”总是返回false?

提问于
用户回答回答于

这个:

" " + obj instanceof Object

评估为:

(" " + obj ) instanceof Object

并且" " + obj确实是一个非空字符串,它是一个实例Object

用户回答回答于

最后System.out.println" " + obj首先进行评估,结果是a String,检查instanceof Object结果并打印结果。

扫码关注云+社区