我有以下代码,
我有一个枚举和一个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;
}
如何解决警告?
答案 0 :(得分:2)
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;
}
答案 1 :(得分:2)
如果enumCode
为null
,则条件enumCode != EnumCode.Closed
为true。
因此第二个if
条件包括第三个条件。
您应该检查它是否与EnumCode.Closed
不同,并且它是否不为空。
if (enumCode == EnumCode.Closed && null == amount) {
return false;
}
if (enumCode != null && enumCode != EnumCode.Closed && null != amount) {
return false;
}
if (null == enumCode && null != amount) {
return false;
}
答案 2 :(得分:0)
从逻辑上讲,一旦达到第3个if条件,可变数量就不会等于null,因此 null!=数量将导致 false 。其次, null == enumCode 也会导致 false ,因为您已经在第二个 if语句中对其进行了验证。此外,在您的第二条if语句中,当说 null!= EnumCode.Closed; 时,条件为true的可能值包括 {null,open,没有} 。这意味着您无需再次使用 null == enumCode 进行检查,因为无论如何它都是假的。根据布尔代数, false && false为false 。要解决此问题,只需删除第三个if,因为它们包含在您以前的if中。
ExchangeService service = new ExchangeService();
service.Url = new Uri("https://mail.domain.com/EWS/Exchange.asmx");
service.Credentials = new WebCredentials(username, password);
EmailMessage message;
message = new EmailMessage(service);
message.From = sender;
message.ToRecipients.Add(recipient);
message.Subject = "Hello world! as the subject";
message.Body = new MessageBody(BodyType.HTML, "<p><b>Hello World!</b> as the HTML Body</p>");
// How to set the alternative body/view