Comparison method violates its general contract!

本文来自:高爽|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的排序算法,在不能修改代码的情况下,解决这个兼容的问题。(但是 我没有试过)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值