使用方法返回设置布尔字段

时间:2010-12-10 07:15:41

标签: language-agnostic coding-style rules conditional-statements

我有这段代码:

if (something.equals(something1)) {
   myObj.setBoolean(true);
} else {
   myObj.setBoolean(false); 
}

有没有理由写上面的代码而不只是:

myObj.setBoolean(something.equals(something1));

2 个答案:

答案 0 :(得分:3)

从技术角度来看:没有。从人的角度来看:也许;它可以使代码更易读,更容易理解。

当涉及到各种编译器执行的优化时,我不是很了解,但理论上可能是if-else块被有效地转换为更短的版本,因为它们在逻辑上是相同。

答案 1 :(得分:2)

一个区别是,在前者上设置断点很容易。

然而,前者包含令人不快的冗余,并且存在很小的分歧风险。

大多数调试器都支持以值为条件的断点。这种替代方案支持打破true或false,没有冗余。

boolean isEqual = something.equals( something1);
myObj.setBoolean( isEqual );