美文网首页
Comparison method violates its g

Comparison method violates its g

作者: 天晴雨依旧 | 来源:发表于2017-08-01 22:29 被阅读0次

       项目中用到了Collections.sort 排序,今突然出现崩溃了,报错Comparison method violates its general contract,一直好好的,奇了个怪。 

       又是一番google加百度。。。

       我的compare实现如下

Collections.sort(resultList, newComparator() {

@Override

public int compare(LiveItemData lhs,LiveItemData rhs) {

       return (int) (rhs.getPubTime()*1000-lhs.getPubTime()*1000);

}

});

      其实在JDK1.7+中要求compare 必须返回 >=1,<=1 ,0 三种值,并且要求非常严格,JDK 1.6 貌似没有这个问题。

      修改如下:

if(rhs.getPubTime()>lhs.getPubTime()){

          return 1;

}

if(lhs.getPubTime()>rhs.getPubTime()){

          return -1;

}

           return0;

相关文章

网友评论

      本文标题:Comparison method violates its g

      本文链接:https://www.haomeiwen.com/subject/gppslxtx.html