[英]Java - null instanceof Object evaluates to both true and 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
確實是一個非空字符串,它是Object
一個實例。
在最后一個System.out.println
,首先計算" " + obj
,並檢查結果,即為instanceof Object
檢查String
,並打印結果。
In(“”+ obj)是首先得到評估的部分,因此它在括號后不再為空。 所以它是Object的實例。
另請參閱以下鏈接,以便您的概念清晰明了。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.