Sonarqube:布尔文字不应该是多余的
Sonarqube : Boolean literals should not be redundant
我有以下漂亮的衬垫:
boolean outcome = count > 0 ? false : true;
但是从 sonaqube 我得到 'Remove the literal "false" boolean value'
solution 似乎假设你可以重写为一个函数
但即使是那个函数也会有一个简单的衬垫并将我置于相同的位置,我不太明白如何修复?想法?
问题是您正在对已经产生 boolean
.
的操作进行 额外体操
如果我用完整的语法写出你所编码的内容:
boolean outcome;
if(count > 0){
outcome = false;
} else {
outcome = true;
}
本质上,你是在颠倒 count > 0
所以试试
boolean outcome = !(count > 0)
甚至更好
count <= 0
作为对其他人的参考,我是愚蠢的,而 SonarQube 在报告上述内容时是正确的,因为它做的比需要的多。正确的代码是:
boolean outcome = count > 0;
你不需要三元语句 count > 0 的结果是一个 true/false 值...
所以如上所述要扭转结果很简单
boolean outcome = !(count > 0);
我有以下漂亮的衬垫:
boolean outcome = count > 0 ? false : true;
但是从 sonaqube 我得到 'Remove the literal "false" boolean value'
solution 似乎假设你可以重写为一个函数
但即使是那个函数也会有一个简单的衬垫并将我置于相同的位置,我不太明白如何修复?想法?
问题是您正在对已经产生 boolean
.
如果我用完整的语法写出你所编码的内容:
boolean outcome;
if(count > 0){
outcome = false;
} else {
outcome = true;
}
本质上,你是在颠倒 count > 0
所以试试
boolean outcome = !(count > 0)
甚至更好
count <= 0
作为对其他人的参考,我是愚蠢的,而 SonarQube 在报告上述内容时是正确的,因为它做的比需要的多。正确的代码是:
boolean outcome = count > 0;
你不需要三元语句 count > 0 的结果是一个 true/false 值...
所以如上所述要扭转结果很简单
boolean outcome = !(count > 0);