Java中的对象空值检查

Mah*_*ria 1 java nullable

推荐哪一个用于检查Object null-ness?

null != Object
Run Code Online (Sandbox Code Playgroud)

要么

Object != null
Run Code Online (Sandbox Code Playgroud)

和其他方式

null == Object
Run Code Online (Sandbox Code Playgroud)

要么

Object == null
Run Code Online (Sandbox Code Playgroud)

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

Joe*_*oey 5

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

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

if (a == false) ...
Run Code Online (Sandbox Code Playgroud)

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