本文记录了在使用Collections.sort方法时遇到的'Comparison method violates its general contract!'错误,原因是Comparator接口实现不严谨,需满足自反性、传递性和对称性。解决方案包括检查并确保compare方法的所有路径返回值正确,特别是相等值的情况。
Shutting down VM
--------- beginning of crash
FATAL EXCEPTION: main
Process:com.gezbox.deliver, PID: 25572java.lang.IllegalArgumentException: Comparison method violates its general contract!
AndroidRuntime: at java.util.TimSort.mergeLo(TimSort.java:773)
AndroidRuntime: at java.util.TimSort.mergeAt(TimSort.java:510)
AndroidRuntime: at java.util.TimSort.mergeForceCollapse(TimSort.java:453)
AndroidRuntime: at java.util.TimSort.sort(TimSort.java:250)
AndroidRuntime: at java.util.Arrays.sort(Arrays.java:1523)
AndroidRuntime: at java.util.Collections.sort(Collections.java:238)
AndroidRuntime: at com.zzz.XXXFragment.refreshDate(XXXFragment.java:203)
AndroidRuntime: at com