对象通用超类java instanceof



有人能解释(x instancef Object)何时不等于true吗?这是完整的问题?

Object是Java中的通用超类,是所有其他类的超类。然而,表达式x instanceof Object并不总是等于真。为x设计一个声明来证明这一点?

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

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

显然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这一事实。

如果xnull,则instanceof将返回false

Java中"obj-instanceofObject"何时为false的重复?

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

最新更新