为什么没有null == null的警告?

时间:2015-11-20 14:04:07

标签: java eclipse

Eclipse在比较两个相同的表达式时会显示警告:

if (1 == 1) -> warning
if (a == a) -> warning

但是,null == null没有显示任何警告(尽管null == null始终为真):

if (null == null) -> no warning

这有什么理由吗?

1 个答案:

答案 0 :(得分:3)

有助于考虑此警告条件试图阻止的内容。它的目的是警告您,您没有比较您想要比较的两个变量,例如由于拼写错误(例如foo == foo表示foo == boofoo == fpp),或两个文字值(例如1 == 1)。

(当然,比较两个字面值会产生不同的问题 - 结果总是相同的,并且应该简单地简化为代码中的truefalse。)

null == null不是这个潜在问题的案例。如果你正在命名一个接近“null”的变量,然后错误地写“null”,你就会遇到一个完全不同的问题,没有编译器可以猜到。