51

このコードをコンパイルして実行すると:

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 を返すべきではありませんか?

4

3 に答える 3

2

In (" " + obj) は最初に評価される部分であるため、括弧の後に null はありません。つまり、オブジェクトのインスタンスです。

コンセプトが明確になるように、以下のリンクも参照してください。

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html

于 2012-09-06T09:13:09.540 に答える
2

最後のSystem.out.printlnでは、 が" " + obj最初に評価され、 である結果Stringが についてチェックされinstanceof Object、結果が出力されます。

于 2012-09-06T09:06:34.823 に答える