Java – null instanceof Object计算结果为true和false
当我编译和运行这个代码:
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
确实是一个非null的string,它是Object
一个实例。
在最后一个System.out.println
, " " + obj
先评估,然后结果,这是一个String
被检查为instanceof Object
和结果打印。
在(“”+ obj)中是首先被评估的部分,所以在括号之后它不再为空。 所以这是Object的实例。
另请参阅下面的链接,以便您的概念清晰。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html