【问题标题】: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】:
如果x 是null,instanceof 将返回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这一事实。