对象通用超类java instanceof

时间:2014-04-11 14:24:24

标签: java object superclass instanceof

有人可以提供(x instancef Object)不等于何时的解释吗?这是完整的问题?

  

Object是Java中的通用超类,是所有其他类的超类。但是,表达式x instanceof Object并不总是等于true。设计x的声明以证明这一点?

4 个答案:

答案 0 :(得分:3)

null不是任何类的实例,因此会使false运算符返回instanceof

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

答案 1 :(得分: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的事实。

答案 2 :(得分:0)

如果xnull,则instanceof将返回false

答案 3 :(得分:-1)

重复When is “obj instanceof Object” false in Java?

如果Object a=null;,则a instanceof Object会返回false