簡體   English   中英

Java - null instanceof Object的計算結果為true和false

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM