【问题标题】:Object universal superclass java instanceof对象通用超类 java instanceof
【发布时间】:2014-05-25 18:29:30
【问题描述】:

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

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

【问题讨论】:

标签: java object superclass instanceof


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    如果xnullinstanceof 将返回false

    【讨论】:

      【解决方案3】:

      When is “obj instanceof Object” false in Java? 的副本

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

      【讨论】:

      • 那就别回答了。标记为重复并继续。
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 2019-08-29
        • 1970-01-01
        • 1970-01-01
        • 2022-01-14
        • 2012-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-01
        相关资源
        最近更新 更多