java Sonarqube:布尔常量不应是冗余的

gzszwxb4  于 2023-02-11  发布在  Java
关注(0)|答案(2)|浏览(114)

我有以下不错的一个班轮:

boolean outcome = count > 0 ? false : true;

但从sonaqube中,我得到了“删除文字“false”布尔值“
solution似乎假设您可以将其重写为函数
但是即使这个函数有那么简单的一行代码,把我放在同样的位置,我也不太明白怎么修复?

n9vozmp4

n9vozmp41#

问题是,您正在对已经生成boolean的操作进行 * 额外的体操 *。
如果我用完整的语法写出你编写的代码:

boolean outcome;

if(count > 0){
  outcome = false;
} else {
 outcome = true;
}

实际上,您是在反转count > 0
那就试试

boolean outcome = !(count > 0)

甚至更好

boolean outcome = count <= 0
thtygnil

thtygnil2#

为了给其他人参考,我是哑巴和SonarQube在报告上述正确的,因为它做的比需要的更多。正确的代码是:

boolean outcome = count > 0;

你不需要三元语句,计数〉0的结果是一个真/假值...
因此,如上所述,扭转这一结果很简单

boolean outcome = !(count > 0);

相关问题