如何解决 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
如果 value1
是 false
并且 return !value2
如果 value1
是 true
.
它可以简化为:return !value1 || !value2;
并且它不使用布尔包装器。
我的项目中有这个方法:
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
如果 value1
是 false
并且 return !value2
如果 value1
是 true
.
它可以简化为:return !value1 || !value2;
并且它不使用布尔包装器。