Java Exception(Comparison method violates its general contract)
来源:互联网 发布:网络推广赚钱 编辑:程序博客网 时间:2024/06/11 05:27
代码
Collections.sort(users.getMenuProfiles(), new Comparator<UserMenuProfile>() { @Override public int compare(UserMenuProfile item1, UserMenuProfile item2) { /* 报错前未添加 if (item1.getLastHitTime() == item2.getLastHitTime()) { return 0; } */ if (item1.getLastHitTime() == null) { return 1; } else if (item2.getLastHitTime() == null) { return -1; } else { return item2.getLastHitTime().compareTo(item1.getLastHitTime()); } }});
异常
java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:747) at java.util.TimSort.mergeAt(TimSort.java:483) at java.util.TimSort.mergeCollapse(TimSort.java:410) at java.util.TimSort.sort(TimSort.java:214) at java.util.TimSort.sort(TimSort.java:173) at java.util.Arrays.sort(Arrays.java:659) at java.util.Collections.sort(Collections.java:217)
漏洞
if (item1.getLastHitTime() == null)
判定null大于任何值,这将导致同为null的两个值,却被判定为不相等,自相矛盾啊,哎,水哦!
参考链接: Comparison method violates its general contract
0 0
- Exception:Comparison method violates its general contract!
- Comparison method violates its general contract Exception
- Java Exception(Comparison method violates its general contract)
- Comparison method violates its general contract 解决办法
- Comparison method violates its general contract
- Comparison method violates its general contract
- Comparison method violates its general contract!
- Comparison method violates its general contract!
- Comparison method violates its general contract
- Comparison method violates its general contract!
- Comparison method violates its general contract!
- Comparison method violates its general contract!
- Comparison method violates its general contract
- Comparison method violates its general contract!
- Comparison method violates its general contract!
- Comparison method violates its general contract!
- Comparison method violates its general contract!
- Comparison method violates its general contract!
- 函数的输入参数引用为什么要加const
- Scala中的None,Nothing,Null,Nil
- javaweb-xml解析&json解析
- 初始化网站css样式
- Android 读取网页源码和下载图片
- Java Exception(Comparison method violates its general contract)
- mac IDEAJ 恢复默认配置
- 那些关于程序员的段子
- XPath技术
- Docker创建mysql镜像
- C# 简陋的远程工具
- Hive Streaming
- [Leetcode_PY]Longest Substring Without Repeating Characters
- 通过android代码获取android系统的imei、手机型号、手机品牌、android系统的版本号、sdk版本号等信息