Java中null != something
和something != null
之间是否存在差异?如果存在差异,那么我应该使用哪一个?为什么?
答案 0 :(得分:5)
它可能来自所谓的joda-conditions,你写的是"bla" == myVariable
而不是myVariable == "bla"
,因为它可能碰巧写出myVariable = "bla"
在某些语言中返回“bla”但是还将“bla”分配给myVariable
答案 1 :(得分:4)
null != something
和something != null
之间没有区别。您必须考虑person.getName().equals("john")
和"john".equals(person.getName())
差异:如果NullPointerException
返回getName()
,第一个会抛出null
,而第二个则不会。但这不适用于您的问题示例。
答案 2 :(得分:4)
我只想指出,“Yoda条件”这样做的理由(使用C& C ++等语言)不适用于此(Java)案例。
Java不允许将通用表达式用作语句,因此
something == null;
和
null == something;
将是编译错误。
something == null
和something = null
的类型不同;分别是boolean和一些引用类型。在这种情况下,它意味着两者:
if (something = null) {
...
}
和
if (null = something) {
...
}
将是编译错误。
事实上,我想不出一个现实的示例,其中null == something
将是编译错误而something == null
不会。因此,它在防错方面没有取得任何成果。
答案 3 :(得分:1)
没有区别,但是有些人使用它来提高代码的可读性。
答案 4 :(得分:1)
性能的观点不会有任何区别,运营商的双方都是以任何方式执行的。但是对于更易读的代码,第二个似乎更具可读性
obj.getSomething().getAnotherThing().doSomething() != null
null != obj.getSomething().getAnotherThing().doSomething()
但是,如果您只是比较一个变量或参数,那么它更具可读性
something != null
当然这取决于读者的意识。
答案 5 :(得分:0)
在java中,如果我们比较任何一个,总是我们必须在左侧放置变量并将值放在右侧......
答案 6 :(得分:0)
它们都是一样的,没有区别。