我放弃了。我在我的代码中的不同位置坐了几个星期,这个真正“有用”的错误消息一次又一次地重新出现。 我在其他帖子中找不到任何东西,这会引导我找到解决方案,但也许我只是完全失明和笨蛋。
我的工作是:
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异常消息是一切,但是很有帮助。
提前致谢