Java中的对象空值检查

时间:2011-09-28 06:49:00

标签: java nullable

建议使用哪一个并用于检查Object null-ness?

null != Object

Object != null

等方式

null == Object

Object == null

......他们之间有什么区别吗?

2 个答案:

答案 0 :(得分:5)

(In)平等是可交换的,所以没有区别。

历史上,前者源于C,以避免在条件语句中意外分配值,但这主要适用于==,而不是!=。 Java也要求条件语句中的条件具有布尔值,因此现在唯一可能出错的地方是

if (a == false) ...

如果您不小心忽略了=中的一个。我猜这是一个罕见的案例(尽管可能并非如此,考虑到学生在前两个学期经常写的内容)。 Joonas还在评论中指出了另一个(更加模糊的)案例。

答案 1 :(得分:1)

使用

总是更具可读性
Object != null

因为它读作“对象不为空”,这实际上就是条件。 您想要交换两者的唯一情况是避免意外使用

Object = null

当你想说

时,即使它不是理想的行为,它也会返回true
Object == null

但实际上现代工具不仅会捕捉到这些错误,而且反向的广泛使用实际上可能成为任何必须阅读代码的人的障碍。