对象是null吗?

问题

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回复错误。