我有以下代码,
我有一个枚举和一个BigInteger变量。请找到使用的条件
public enum EnumCode {
Open,
Closed,
None
}
private boolean TEST(final ConstraintValidatorContext constraintValidatorContext, final BigInteger amount, final EnumCode enumCode) {
if (enumCode == EnumCode.Closed && null == amount) {
//error message1
return false;
}
if (enumCode != EnumCode.Closed && null != amount) {
//error message2
return false;
}
if (null == enumCode && null != amount) { //**Condition is always false when reached**
//error message3
return false;
}
return true;
}
如何解决警告?
最佳答案
if (enumCode == EnumCode.Closed && null == amount) {
return false;
}
if (enumCode != EnumCode.Closed && null != amount) {
return false;
}
如果为
enumCode == null
,则为enumCode != EnumCode.Closed
。因此,这:if (null == enumCode && null != amount) {
return false;
}
没有先前的条件为真,就永远不会为真。
要解决此问题,请删除最终的if语句,因为它是多余的。
顺便说一句,您可以只使用一个if语句来编写它:
if ((enumCode == EnumCode.Closed) == (null == amount)) {
return false;
}