Yuv*_*dam 23 java coding-style nullpointerexception code-readability
考虑这一行:
if (object.getAttribute("someAttr").equals("true")) { // ....
Run Code Online (Sandbox Code Playgroud)
显然这条线是一个潜在的错误,属性可能是null,我们将得到一个NullPointerException.所以我们需要将它重构为以下两种选择之一:
第一种选择:
if ("true".equals(object.getAttribute("someAttr"))) { // ....
Run Code Online (Sandbox Code Playgroud)
第二种选择:
String attr = object.getAttribute("someAttr");
if (attr != null) {
if (attr.equals("true")) { // ....
Run Code Online (Sandbox Code Playgroud)
第一个选项很难读,但更简洁,而第二个选项在意图上是明确的,但是很冗长.
在可读性方面,您更喜欢哪个选项?
vic*_*ugo 27
我一直都在用
if ("true".equals(object.getAttribute("someAttr"))) { // ....
Run Code Online (Sandbox Code Playgroud)
因为虽然阅读起来有点困难,但它的冗长程度要低得多,我认为它足够可读,所以你很容易习惯它
laa*_*lto 18
在第二个选项中,您可以利用短路&&:
String attr = object.getAttribute("someAttr");
if (attr != null && attr.equals("true")) { // ....
Run Code Online (Sandbox Code Playgroud)