另一个比较合同违规

时间:2018-02-14 11:27:26

标签: java sorting

我放弃了。我在我的代码中的不同位置坐了几个星期,这个真正“有用”的错误消息一次又一次地重新出现。 我在其他帖子中找不到任何东西,这会引导我找到解决方案,但也许我只是完全失明和笨蛋。

我的工作是:

int compare = -1;
SomeObjectWithString other = (SomeObjectWithString) arg0;

if (this.getText() == null && other.getText() == null) {
  compare = 0;
} else if (this.getText() == null && other.getText() != null) {
  compare =-1;
} else if (other.getText() == null) {
  compare = 1;
} else {
  compare = this.getText().compareTo(other.getText());  
}

if (compare == 0) {
  //finally comparing hashcode when equal
  compare = this.hashCode()-other.hashCode();
}
return compare;

我得到的 - 有时(取决于数据)是

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

有没有人知道,为什么合同可能没有被填满,因为这里的Blochs异常消息是一切,但是很有帮助。

提前致谢

0 个答案:

没有答案