【发布时间】:2020-07-19 13:56:37
【问题描述】:
我有下面的代码,在 if 条件下我得到声纳 检查相等性时,字符串文字的结果应放在左侧。请告知如何克服这个问题。
final String aviid = avcMaster.getAVMaster().getAviiId();
if ((!aviid.equals("44")) || (!aviid.equals("55"))) { // ** Sonar Issue **//
final String defaultAiId = "88";
deviceElement.setAttribute("avi", defaultAiId);
}
else{
deviceElement.setAttribute("avi", aviid);
}
【问题讨论】:
-
如果您的
aviid不为空,那么(!aviid.equals("44")) || (!aviid.equals("55"))始终为真。 -
另外,你知道吗:if ((!aviid.equals("44")) || (!aviid.equals("55"))) 你能举一个例子吗?不返回真?
-
我想你想用
&&而不是||... -
你的意思可能是
deviceElement.setAttribute("avi", aviid.matches("44|55")? aviid: "88");