Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 糟糕的撞车违反了合同_Java_Android - Fatal编程技术网

Java 糟糕的撞车违反了合同

Java 糟糕的撞车违反了合同,java,android,Java,Android,嘿,伙计们,我有这段代码要根据持续时间进行比较,但我一直得到这个错误: 致命异常:java.lang.IllegalArgumentException比较方法 违反了它的总合同 这是我的密码: Collections.sort(list, new Comparator<MyProduct>() { @Override public int compare(MyProduct lhs, MyProduct rhs) { Integer lDuratio

嘿,伙计们,我有这段代码要根据持续时间进行比较,但我一直得到这个错误:

致命异常:java.lang.IllegalArgumentException比较方法 违反了它的总合同

这是我的密码:

Collections.sort(list, new Comparator<MyProduct>() {

    @Override
    public int compare(MyProduct lhs, MyProduct rhs) {
        Integer lDuration = (lhs != null ? lhs.getDuration() :0);
        Integer rDuration = (rhs != null ? rhs.getDuration() :0);

        return lDuration.compareTo(rDuration);
    }
});
Collections.sort(列表,新比较器(){
@凌驾
公共整数比较(MyProduct lhs、MyProduct rhs){
整数lDuration=(lhs!=null?lhs.getDuration():0);
整数rDuration=(rhs!=null?rhs.getDuration():0);
返回lDuration.compareTo(rDuration);
}
});

您违反了以下要求:

当我们说c对S施加的顺序与equals一致时,我们的意思是,该顺序的商是由对象的equals(Object)方法定义的等价关系:

您是说null等于持续时间为零的实例,而事实并非如此,因为
zeroDuration.equals(null)
为false(或至少为),而
null.equals(zeroDuration)
导致异常


您应该决定是将所有空元素放在第一位,还是将所有空元素放在最后。

导致错误的比较持续时间是多少?您能给我一个小例子,说明您是如何做到这一点的吗?虽然我不理解它,但我还没有解决问题
{(x, y) such that x.equals(y)}