我最近在最近的回答中使用以下内容收到了反对意见:
String word = ...; if ("s".equals(word) || "y".equals(word)
由于使用“ yoda条件”而给出了下票。我要求进一步解释,但未提供任何解释。我更喜欢这种风格以避免可能NullPointerException。
NullPointerException
这是不良的编码风格吗?如果是这样,为什么?
Bill Pugh在Devoxx2011上问了这个问题"xyz".equals(str)。我和比尔在一起,现在更喜欢str.equals("xyz")。
"xyz".equals(str)
str.equals("xyz")
Java传统的基础是我们尽早发现错误。NPE非常普遍。我们希望尽快将这些空值路由出去。
如果您期望引用maynull,那么我并不特别反对反向表示法。很明显很容易理解,可能会有null单独的null检查,但是应该很好地理解相反的顺序,并且可以将代码与null禁止的正常情况充分区分开。
null
在安全性方面,null-tolerance容纳的一些错误是漏洞。