请你根据方法参数提出整齐的java代码片段来反转布尔结果 这不是一个有效的例子:
public boolean isSomethingTrue(boolean inverseLogic) {
boolean resultOfCalculation = ...
return inverseLogic && resultOfCalculation;
}
result | inverse | desired return
true | false | true
false | false | false
true | true | false
false | true | true
答案 0 :(得分:4)
您可以使用三元运算符:
public boolean isSomethingTrue(boolean inverseLogic) {
boolean resultOfCalculation = ...
return inverseLogic ? !resultOfCalculation : resultOfCalculation;
}
另一种选择是XOR:
public boolean isSomethingTrue(boolean inverseLogic) {
boolean resultOfCalculation = ...
return inverseLogic ^ resultOfCalculation;
}
答案 1 :(得分:1)
如果你看一下你想要的真相表:
inverse? calculation return-value
false false false
false true true
true false true
true true false
然后您可能会注意到这正是inverseLogic XOR resultOfCalculation
的真值表。
然而,这可能是一个稍微模糊的操作,所以要么好好评论,以便在以后回读代码时理解它,或者使用Eran建议的三元.. ? .. : ..
- 它可能会生成< em>略微效率更低的代码,但除了最关键的系统之外,您更喜欢可读的版本。