有人能解释(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
这一事实。
如果x
是null
,则instanceof
将返回false
。
Java中"obj-instanceofObject"何时为false的重复?
如果Object a=null;
,则a instanceof Object
返回false