我曾经写过类似“ anObject != null ”这样的Java代码测试语句,但我发现有些人这样做相反,例如“ null != anObject ”。那么,它们之间有什么区别,哪一个是 Java 中更好的方法?
问问题
144 次
4 回答
7
他们的理由是,如果您不小心忘记了!
,那么您将进行分配而不是比较,而第二种方式不会发生这种情况。
anObject = null
将 null 分配给anObject
,而null = anObject
将产生编译器错误。
于 2013-06-28T13:53:14.177 回答
3
这与尤达条件有些相关:
"the force".equals(myString);
如果 myString 为空,则避免空指针。
于 2013-06-28T13:54:16.307 回答
2
于 2013-06-28T13:53:33.433 回答
1
从编译代码的角度来看,没有区别。
然而,从偏执的程序员的角度来看,它可以防止你犯下可怕的赋值错误。
例如,如果您输入错误:
null = myObject
你得到一个编译器错误,因为你不能分配给常量。
但是,如果您输入错误:
myObject = null
编译器不会抱怨。并且您可以发布将 null 分配给您的 Object 的代码,而不是测试 null。
于 2013-06-28T13:53:05.223 回答