今天代码中本地运行可以,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());
}