Comparison method violates its general contract!
程序员文章站
2022-03-27 09:36:29
...
本文来自:高爽|Coder,原文地址:http://blog.csdn.net/ghsau/article/details/42012365,转载请注明。(但是 这个 玩意 为啥 我点进去 不是原作者 ,,,)
今天 遇到了一个问题 比较器问题
报了一个 Comparison method violates its general contract!
然后查了一下 发现 是DK7底层的排序算法换了,而且 jdk7没有兼容6. 可怕
发到这 记录一下
public int compareTo(AlbumIncomeVO o) {
// int i = o.getNum() - this.getNum();//倒序,大的放前面
// if(i == 0){
// return 1;
// }
// return i;
return o.getNum().compareTo(this.getNum());
}
Collections.sort(incomeAlbums);
这就是 代码 ,, 注释的 是会报错的 下面的是解决得
或者是
可以在JVM的启动参数中加入如下参数:
-Djava.util.Arrays.useLegacyMergeSort=true
这样就会照旧使用JDK6的排序算法,在不能修改代码的情况下,解决这个兼容的问题。(但是 我没有试过)
上一篇: HTML简介