gpt4 book ai didi

java - "Comparison method violates its general contract!"但我只比较两个长值?

转载 作者:行者123 更新时间:2023-12-01 13:46:49 30 4
gpt4 key购买 nike

我有以下比较功能:

    @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;
}

而compareTime是这样计算的

this.compareTime = this.dateStamp + (LENGTH_OF_DAY - (this.dateTimeStamp - this.dateStamp));

为什么我会收到此错误?!我正在比较两个长值,这不应该是标准的吗?

编辑:我发现了错误,这是我的 IDE (Eclipse) 有问题。清理我的项目并重新启动后,它就可以工作了。

最佳答案

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

也不是

this.dateStamp + (LENGTH_OF_DAY - (this.dateTimeStamp - this.dateStamp))

相当于

2*this.dateStamp + LENGTH_OF_DAY - this.dateTimeStamp

我不知道这些字段的作用,但看起来这不是您想要做的。

关于java - "Comparison method violates its general contract!"但我只比较两个长值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20305820/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com