今天用到Collections.sort();方法时,提示错误如下:
网上查到一个解释:
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函数的实现变了,造成了这个问题,具体原因未知。
网上找了解决方法,如下
加入一句代码
<span style="font-size:14px;">System.setProperty("java.util.Arrays.useLegacyMergeSort", "true");</span>
转载出处: http://blog.youkuaiyun.com/fanzitao/article/details/8040201

本文介绍在 JDK 7 中使用 Collections.sort() 方法时遇到的错误及其解决方案。该问题源于排序算法的变化,可能导致 IllegalArgumentException。文章提供了一种通过设置系统属性来恢复旧版排序行为的方法。
697

被折叠的 条评论
为什么被折叠?



