我正在寻找一种优雅的方法来缩短许多返回布尔值的连续方法。
例如,请参见下面的示例。这可以使用lambdas进行流式传输或实现吗?
public boolean outerMethod() {
if(booleanMethod1() && booleanMethod2() && booleanMethod3() && ...) {
// Do work
} else {
// Do something else
}
}
发布于 2019-03-20 06:21:42
如果我的condition1 && condition2 && ... && conditionN
列表变得太长,我最喜欢的重构通常是
boolean theMeaningOfANDingAllConditions = condition1
&& condition2
&& ...
&& conditionN;
if (theMeaningOfANDingAllConditions) {
// Do work
} else {
// Do something else
}
发布于 2019-03-20 06:26:41
我不认为“短路”是你要找的词。这里面有a specific meaning。
如果您想要将条件组合到一个较短的行中,则将它们组合到一个函数中是一种常见的模式。
if (allBooleanMethods()) {
// Do work
} else {
// Do something else
}
...
private boolean allBooleanMethods() {
boolean result = booleanMethod1();
result = result && booleanMethod2();
result = result && booleanMethod3();
return result;
}
https://stackoverflow.com/questions/55250736
复制相似问题