java中的“一个对象!= null”和“null!=一个对象”有什么区别?

时间:2013-06-28 13:51:51

标签: java

我曾经编写过像“ anObject!= null ”这样的Java代码的测试语句,但我发现有些人反过来这样做“ null!= anObject ” 。那么,它们之间有什么区别,哪一个是Java中更好的方法呢?

4 个答案:

答案 0 :(得分:7)

他们的理由是,如果你不小心忘记!,那么你有一个作业而不是一个比较,这不可能在第二种方式发生。

anObject = null将空值分配给anObject,而null = anObject会产生编译错误。

答案 1 :(得分:3)

这与yoda条件有些相关:

"the force".equals(myString);
如果myString为null,则

避免空指针。

答案 2 :(得分:2)

这是人们比较表达方式的一种风格。

不要使用null != anObject,因为null是一个常量,被视为Yoda condition

始终将变量左侧和常量置于右侧。

答案 3 :(得分:1)

从编译代码的角度来看,没有区别。

然而,从偏执狂程序员的角度来看,它可以防止你制造可怕的任务错误。

e.g。如果你错误输入:

null = myObject

您收到编译器错误,因为您无法分配常量。

但是如果你错误输入:

myObject = null

编译器不会抱怨。并且您可以发布为您的Object分配null而不是测试null的代码。