我曾经编写过像“ anObject!= null ”这样的Java代码的测试语句,但我发现有些人反过来这样做“ null!= anObject ” 。那么,它们之间有什么区别,哪一个是Java中更好的方法呢?
答案 0 :(得分:7)
他们的理由是,如果你不小心忘记!
,那么你有一个作业而不是一个比较,这不可能在第二种方式发生。
anObject = null
将空值分配给anObject
,而null = anObject
会产生编译错误。
答案 1 :(得分:3)
这与yoda条件有些相关:
"the force".equals(myString);
如果myString为null,则避免空指针。
答案 2 :(得分:2)
答案 3 :(得分:1)
从编译代码的角度来看,没有区别。
然而,从偏执狂程序员的角度来看,它可以防止你制造可怕的任务错误。
e.g。如果你错误输入:
null = myObject
您收到编译器错误,因为您无法分配常量。
但是如果你错误输入:
myObject = null
编译器不会抱怨。并且您可以发布为您的Object分配null而不是测试null的代码。