【发布时间】:2021-07-02 08:47:40
【问题描述】:
我得到了这个声纳错误:
改为使用原始值。规则:既不是“Math.abs”也不是否定 应该用于可能是“MIN_VALUE”的数字
在这种比较日期的方法中:
public int compareDates(MyDto a, MyDto b) {
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy hh:mm");
try {
Date dateA = sdf.parse(a.getStartDate() + " " + a.getStartHour());
Date dateB = sdf.parse(b.getStartDate() + " " + b.getStartHour());
return - dateA.compareTo(dateB); //Sonar BUG
} catch (ParseException e) {
logger.error("Unable to parse date: " + e.getMessage());
return 0;
}
}
我正在使用这种方法按日期对 MyDto 的集合进行排序:
Collections.sort(myDtoList, (a,b) -> compareDates(a,b));
现在我真的不知道该怎么修改。比较返回的整数可以是负数,也可以不是,我该如何解决才能让 SQ 开心?
【问题讨论】: