`
JasonShieh
  • 浏览: 532532 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JAVA比较器报错:Comparison method violates its general contract

    博客分类:
  • JAVA
 
阅读更多
java.lang.IllegalArgumentException: Comparison method violates its general contract!
网上查到一个解释:
Description: The sorting algorithm used by java.util.Arrays.sort and (indirectly) by java.util.Collections.sort has been replaced. The new sort implementation may throw an IllegalArgumentException if it detects a Comparable that violates the Comparable contract. The previous implementation silently ignored such a situation. If the previous behavior is desired, you can use the new system property, java.util.Arrays.useLegacyMergeSort, to restore previous mergesort behavior.
也就是说jdk 7的sort函数的实现变了,造成了这个问题,具体原因未知。
改一下系统设置,还是选择使用老版本的排序方法,在代码前面加上这么一句话:
System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics