【发布时间】:2015-11-05 15:17:50
【问题描述】:
我在 Eclipse Mars 中写了这行代码是为了搞乱:
null.toString();
我收到以下编译器错误消息:
无法在原始类型 null 上调用 toString()
这很奇怪,因为null 不是原始类型,也不是此处解释的对象引用:Is null an Object?
所以,为了确定,我尝试使用javac 编译这样奇怪的代码行,我得到了这个结果:
NullTest.java:3: <nulltype> cannot be dereferenced null.toString(); ^ 1 error
有人知道为什么 Eclipse 会给出这种 (IMO) 误导性编译器错误消息吗?
【问题讨论】:
-
我在 Kepler 和 Luna 中也收到了相同的“原始”错误消息,所以这不是什么新鲜事。
-
听起来像是 ECJ 中的评估路径错误。在上面提交一个错误,直到 Java 被另一种语言取代,他们才会忽略。
-
Yeah, smells like a bug to me, too. 不过它已经存在了很长时间了。