考虑以下代码:
if (object.getAttribute("someAttr").equals("true")) { // ....
显然这行代码有潜在的bug,属性可能为null
,我们会得到一个NullPointerException
。所以我们需要将其重构为以下两种选择之一:
第一个选择:
if ("true".equals(object.getAttribute("someAttr"))) { // ....
第二个选项:
String attr = object.getAttribute("someAttr");
if (attr != null) {
if (attr.equals("true")) { // ....
第一种选项阅读起来比较困难,但更加简洁,而第二种选项意图清晰,但冗长。
就可读性而言,您更喜欢哪个选项?