2014-04-11 73 views
2

有人可以提供(x instancef Object)何時不等於真的解釋嗎?這是完整的問題?對象通用超類java instanceof

Object是Java中的通用超類,它是所有其他類的超類。但是,表達式x instanceof Object並不總是等於真。設計一個x的聲明來證明這一點?

+0

可能的重複[何時是「obj instanceof Object」在Java中爲false?](http://stackoverflow.com/questions/1341455/when-is-obj-instanceof-object-false-in-java) – Igor

+0

記住instanceOf編譯時檢查 – TheLostMind

回答

3

null不是任何類的實例,因此返回false對使用​​instanceof運營商:

Object x = null; 
if (!x instanceof Object) { 
    System.out.println ("we get here since X is null"); 
} 
0

如果xnullinstanceof將返回false

1

重複顯然null答案是 「正確的」。但這裏是一個迂腐的選擇:

public class Test { 

    private class Object {} 

    public static void main(String[] args) { 
    java.lang.Object s = new String("foo");  
    System.out.println((s instanceof Object)); 
    } 
} 

打印

false 

在這裏,我們濫用這一事實,Object並不總是指java.lang.Object