【发布时间】:2017-04-03 22:44:17
【问题描述】:
您好,我在下面编写了用于检查列表是否相等的代码
private boolean equalTypeLists(List<Type> one, List<Type> two){
if (one == null && two == null){
return true;
}
if((one == null && two != null)
|| one != null && two == null
|| one.size() != two.size()){
return false;
}
one = new ArrayList<>(one);
two = new ArrayList<>(two);
Collections.sort(one, new Comparator<Type>() {
@Override
public int compare(Type o1, Type o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
Collections.sort(two, new Comparator<Type>() {
@Override
public int compare(Type o1, Type o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
return checkForTwoEqualTypeLists(one,two);
}
但 Sonar 正在向 Blocker 发出消息“条件不应无条件地评估为“TRUE”或“FALSE””以用于下面的代码行
if((one == null && two != null)
|| one != null && two == null
|| one.size() != two.size()){
return false;
}
请您帮我解决上述情况。
【问题讨论】:
-
if ((one == null && two != null) || (one != null && two == null) || (one.size() != two.size())) { return false; } -
@DevendraLattu 是的,但你能解释一下为什么 Sonar 会为此发疯吗?
标签: java