我的项目中有这种方法:
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
答案 0 :(得分:1)
这意味着您应该执行以下操作:
a。将返回类型更改为布尔对象类型。这将进一步取决于您对类型为Boolean
的对象的处理方式。
b。将返回值从return value1 ? !value2 : Boolean.TRUE;
更改为return value1 ? !value2 : true;
或return value1 ? !value2 : !value1;
这可以进一步简化。如果我看一下返回值表,那么我会看到:
value1 value2 result
T F T
F T T
T T F
F F T
这意味着它等同于return !(value1 & value2)
这是因为在返回值时,您要将类型Boolean
的对象转换为原始布尔值。
答案 1 :(得分:0)
那个:return value1 ? !value2 : Boolean.TRUE;
如果true
是value1
则返回false
,如果!value2
是value1
则返回true
。
它可以简化为:return !value1 || !value2;
,并且不使用布尔包装。