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

How to fix the major issue in SonarQube "needlessly boxes a boolean constant"

我的项目中有这个方法:

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

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

一个。将 return 类型更改为布尔对象类型。这将进一步取决于您对 Boolean.
类型的对象执行的操作 b.将 return 值从 return value1 ? !value2 : Boolean.TRUE; 更改为 return value1 ? !value2 : true;return value1 ? !value2 : !value1;

这可以进一步简化。如果我查看 return 值的 table,那么我会看到:

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

相当于return !(value1 & value2)

这是因为在 return 赋值时,您要将 Boolean 类型的对象转换为原始布尔值。

即:return value1 ? !value2 : Boolean.TRUE;

表示 return true 如果 value1false 并且 return !value2 如果 value1true.

它可以简化为:return !value1 || !value2;并且它不使用布尔包装器。