情况
在代码中使用了比较器,运行正常,但是升级jdk7之后报错:Comparison method violates its general contract。
原因
JDK7中的Collections.Sort方法实现中,如果两个值是相等的,那么compare方法需要返回0,否则 可能 会在排序时抛错,而JDK6是没有这个限制的。
详细原因可参考:
http://www.tuicool.com/articles/MZreyuv
在代码中使用了比较器,运行正常,但是升级jdk7之后报错:Comparison method violates its general contract。
JDK7中的Collections.Sort方法实现中,如果两个值是相等的,那么compare方法需要返回0,否则 可能 会在排序时抛错,而JDK6是没有这个限制的。
详细原因可参考:
http://www.tuicool.com/articles/MZreyuv