Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.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_Collections - Fatal编程技术网

Java &引用;比较法违反其总合同&引用;但我只是比较两个长值?

Java &引用;比较法违反其总合同&引用;但我只是比较两个长值?,java,android,collections,Java,Android,Collections,我有以下比较功能: @Override public int compareTo(OptimizedMatch another) { long c = this.compareTime - another.compareTime; if(c>0){ return 1; } else if(c<0){ return -1; } return 0

我有以下比较功能:

    @Override
    public int compareTo(OptimizedMatch another) {
        long c = this.compareTime - another.compareTime;
        if(c>0){
            return 1;
        } else if(c<0){
            return -1;
        }
        return 0;
    }
为什么我会犯这个错误?!我在比较两个长值,这不应该只是标准值吗


编辑:我发现了错误,是我的IDE(Eclipse)有缺陷。在清理我的项目并重新启动它之后。

您的equals()方法可能有问题

还有,不是吗

this.dateStamp + (LENGTH_OF_DAY - (this.dateTimeStamp - this.dateStamp))
相当于

2*this.dateStamp + LENGTH_OF_DAY - this.dateTimeStamp

我不知道这些字段是做什么的,但看起来它不是你想在那里做的。

你是对的,我只是没有缩短公式,让它更清楚它应该做什么。这些字段都是标准的long,所以所有的普通操作符在理论上都可以正常工作,不是吗?是的,我只是感到困惑。问题很可能出在equals()中,正如我写的和链接的问题所表明的那样。如果compareTo返回0且对象不相等(例如,如果使用标准的equals实现),java会抱怨。
2*this.dateStamp + LENGTH_OF_DAY - this.dateTimeStamp