Comparison method violates its general contract Exception

原创 2017年01月03日 14:43:07

今天代码中本地运行可以,qa运行报如下错误。

Caused by: java.lang.IllegalArgumentException: Comparison method violates its general contract!

比较代码:

    if(this.getDisplayOrder() == null){
            return 1;
        }else if(o.getDisplayOrder() == null){
            return -1;
        }else{
            return this.getDisplayOrder().compareTo(o.getDisplayOrder());
    }

原因:有些情况比较返回的值非数字, 或者没有考虑到某些情况导致的。
改成如下代码就可以了:

if(c1.getDisplayOrder() == null && c2.getDisplayOrder() == null){
                    return 0;
                } else if(c1.getDisplayOrder() == null){
                    return 1;
                }else if(c2.getDisplayOrder() == null){
                    return -1;
                }else{
                    return c1.getDisplayOrder().compareTo(c2.getDisplayOrder());
                }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

比较器报错:Comparison method violates its general contract

转载自:http://blog.csdn.net/fanzitao/article/details/8040201 Brother Zeng遇到的错误: java.lang.Illeg...
  • memray
  • memray
  • 2013-12-27 22:52
  • 3283

Comparison method violates its general contract!

Comparison method violates its general contract!

eclipse3.7.0升级时(例如3.7.2)发生错误:Comparison method violates its general contract 解决

先来看错误提示界面:        如果这个错误不解决,最后即使你一直等待到更新完毕,重启eclipse后依然是3.7.0版本,所以很让人头疼。不过终究是有人喜欢专研的,下面就是我找到的最简单但...

Comparison method violates its general contract!

背景16号为了统一线上服务器运行环境,将两台服务器的Tomcat6+JDK6升级到Tomcat7+JDK7,本以为很简单的事情,升级后自己验证也没问题,没想到却悲剧了。升级后,过了半小时运营就找过来反...
  • ghsau
  • ghsau
  • 2014-12-18 23:08
  • 25564

JDK7的Comparison method violates its general contract异常

出错代码块: ListInteger> list = getUserIds(); Collections.sort(list, new ComparatorInteger>() { @Ove...

图解JDK7的Comparison method violates its general contract异常

1. 摘要 前一阵遇到了一个使用Collections.sort()时报异常的问题,跟小伙伴@zhuidawugui 一起排查了一下,发现问题的原因是JDK7的排序实现改为了TimSort,之后...

这个坑,你要注意:Comparison method violates its general contract!

背景有部分业务需要进行排序,对比的对象是某实体里的金额(double 类型),这样,我们实现了自定义的比较类,结果运行一段时间之后报了错误:Comparison method violates its...
  • xvshu
  • xvshu
  • 2017-04-13 09:30
  • 1527

关于JDK7的IllegalArgumentException:Comparison method violates its general contract

关于JDK7的IllegalArgumentException:Comparison method violates its general contract今天看社区问答的时候看到的一个问题,起因是...

比较器报错:Comparison method violates its general contract

Brother Zeng遇到的错误: java.lang.IllegalArgumentException: Comparison method violates its general contr...

图解JDK7的Comparison method violates its general contract异常

1.摘要 前一阵遇到了一个使用Collections.sort()时报异常的问题,跟小伙伴@zhuidawugui 一起排查了一下,发现问题的原因是JDK7的排序实现改为了TimSort,之后我们又...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)