java - 如何解决 SonarQube "needlessly boxes a boolean constant"中的主要问题

标签 java sonarqube boolean boolean-expression boolean-operations

我的项目中有这个方法:

private static boolean isNAND(boolean value1, boolean value2) {
        return value1 ? !value2 : Boolean.TRUE;
}

但是我在 SonarQube 中遇到了这个重大问题,我不知道如何解决它:

Method io.clouding.bendiciones.buenas.noches.Operador.isNAND(boolean, boolean) needlessly boxes a boolean constant

最佳答案

这意味着您应该执行以下操作:

a.要么将返回类型更改为 boolean 对象类型。这进一步取决于您对 Boolean 类型的对象所做的操作。
b.更改 return value1 的返回值? !value2 : Boolean.TRUE;返回 value1 ? !value2 : true;返回 value1 ? !value2 : !value1;

这可以进一步简化。如果我查看返回值表,我会看到以下内容:

value1 value2 result
T        F     T
F        T     T
T        T     F
F        F     T

这意味着它相当于return !(value1 & value2)

这是因为在返回值时,您要将 Boolean 类型的对象转换为原始 boolean 值。

关于java - 如何解决 SonarQube "needlessly boxes a boolean constant"中的主要问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58198893/

相关文章:

java - 接口(interface)是否提供完整的抽象?如何?

java - SonarQube 通过质量门进行技术债务管理

java - Sonar 显示 DTO 类私有(private)字段存在问题

python - 如何检查字符串列表中是否存在子字符串

控制可能到达非 void 函数的末尾 -wreturn-type

java - Guava map 中驱逐的懒惰

java - 连接mysql和Java的问题

java - Android Intent 使用

azure - 代码覆盖率 - Azure Pipelines SonarQube

java - 数组的 boolean 方法,编码问题