Java 如何解决SonarQube中的主要问题;不必要地将布尔常量“装箱”;
我在我的项目中使用了这种方法:Java 如何解决SonarQube中的主要问题;不必要地将布尔常量“装箱”;,java,sonarqube,boolean,boolean-expression,boolean-operations,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) needles
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
B从
返回值1更改返回值!值2:Boolean.TRUE代码>到返回值1!价值2:正确代码>或返回值1!价值2:!价值1代码>
这可以进一步简化。如果我查看返回值表,我会看到:
value1 value2 result
T F T
F T T
T T F
F F T
这意味着它相当于返回!(值1和值2)
这是因为在返回值时,您要将类型为布尔值的对象转换为基本布尔值。即:返回值1!值2:Boolean.TRUE代码>
如果value1
为false
则表示返回true
,返回!值2
如果value1
为true
它可以简化为:return!值1 | |!价值2代码>并且它不使用布尔包装器 我想这是因为Boolean.TRUE返回的是布尔值而不是布尔值。尝试返回true而不是Boolean.TRUEtrue,但是我会得到一个“删除文字”true布尔值。true,但是我会得到一个“删除文字”true布尔值。那么最好将其更改为返回值1!价值2:!价值1代码>