Eclipse在比较两个相同的表达式时会显示警告:
if (1 == 1) -> warning
if (a == a) -> warning
但是,null == null
没有显示任何警告(尽管null == null
始终为真):
if (null == null) -> no warning
这有什么理由吗?
答案 0 :(得分:3)
有助于考虑此警告条件试图阻止的内容。它的目的是警告您,您没有比较您想要比较的两个变量,例如由于拼写错误(例如foo == foo
表示foo == boo
或foo == fpp
),或两个文字值(例如1 == 1
)。
(当然,比较两个字面值会产生不同的问题 - 结果总是相同的,并且应该简单地简化为代码中的true
或false
。)
null == null
不是这个潜在问题的案例。如果你正在命名一个接近“null”的变量,然后错误地写“null”,你就会遇到一个完全不同的问题,没有编译器可以猜到。