编译并运行此代码时:
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?
答案 0 :(得分:103)
此:
" " + obj instanceof Object
评估为:
(" " + obj ) instanceof Object
和" " + obj
确实是一个非空字符串,它是Object
的一个实例。
答案 1 :(得分:2)
在上一个System.out.println
中," " + obj
首先进行评估,并检查String
的{{1}}结果,并打印结果。
答案 2 :(得分:2)
In(“”+ obj)是首先得到评估的部分,所以它在括号后不再为空。 所以它是Object的实例。
另请参阅以下链接,以便明确您的概念。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html