问题
Java中是否为null anObject
?
#1 热门回答(156 赞)
如果null是一个Object,它将支持java.lang.Object
的方法,例如equals()
。但是,情况并非如此 - 对null的任何方法调用都会导致aNullPointerException
。
这就是Java Language Specification在这个主题上所说的话:
还有一个特殊的null类型,表达式的类型为null,没有名称。由于null类型没有名称,因此无法声明null类型的变量或转换为null类型。空引用是null类型表达式的唯一可能值。 null引用始终可以强制转换为任何引用类型。实际上,程序员可以忽略null类型,只是假装null只是一个可以是任何引用类型的特殊文字。
我认为这可归结为"null is special"。
#2 热门回答(30 赞)
根据Javaspec,null
,可以将类型分配给对象变量(作为注释中指出的值)。但是,你无法实例化或创建此类型的变量,你必须使用编译器提供的literalnull
。
#3 热门回答(26 赞)
绝对不是:null instanceof Object
回复错误。