我有这段代码:
if (something.equals(something1)) {
myObj.setBoolean(true);
} else {
myObj.setBoolean(false);
}
有没有理由写上面的代码而不只是:
myObj.setBoolean(something.equals(something1));
答案 0 :(得分:3)
从技术角度来看:没有。从人的角度来看:也许;它可以使代码更易读,更容易理解。
当涉及到各种编译器执行的优化时,我不是很了解,但理论上可能是if-else
块被有效地转换为更短的版本,因为它们在逻辑上是相同。
答案 1 :(得分:2)
一个区别是,在前者上设置断点很容易。
然而,前者包含令人不快的冗余,并且存在很小的分歧风险。
大多数调试器都支持以值为条件的断点。这种替代方案支持打破true或false,没有冗余。
boolean isEqual = something.equals( something1);
myObj.setBoolean( isEqual );