每个都有好处,我了解其中的区别,但是什么是最佳/标准做法?又为什么呢?
例如 :
"myString".equals(myStringVar)
- 避免潜在的NPE,并且不需要空检查。(好东西?)
- 读取的更干净,因为不需要空检查。
- 如果null不是期望值,则您的程序可能会中断而没有任何明智之举。
然而
myStringVar.equals("myString")
- 如果null为期望值,则需要进行null检查。(好东西?)
- 可以使用空检查使复合条件变得混乱。
- 允许NPE通知我们是否发生了故障。
哪个变体被认为是Java使用的标准,为什么?
2
是否为null是期望值,是否应该使用“等于”运算确定这是问题所在?
—
马修·弗林
我认为不是。但这是我的看法。我想听听别人的理由。
—
BrandonV'5
在使用=和/或==进行赋值/比较的语言中,通常最好的做法是将无法更改的内容放在左侧,这样在进行比较时就不会进行意外赋值。对于在.equals之类的对象上使用方法的语言,我认为这并不重要。
—
GordonM '16