gpt4 book ai didi

java - 比较方法违反了它的一般契约!静态分析可以吗?

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:41 25 4
gpt4 key购买 nike

与之前的许多人一样,我遇到了IllegalArgumentException:比较方法违反了其一般契约!我需要检查遗留代码以了解所有可能发生的情况。最好的方法是使用静态分析工具来遍历所有代码并检测可能的问题。

<小时/>
  1. TimSort 如何检测这些问题?
  2. 是否可以对代码进行静态分析并找出问题?
  3. 有这样的工具可用吗?也许作为现有静态分析工具的规则?

最佳答案

当它将两个运行合并在一起时,它将在合并阶段检测到它们。通常,这仅意味着您的比较函数不遵循规则,例如 a < bb < a同时为真,或者从 a > b 的所有值中获取真值, b > cc > a .

我不知道有什么静态分析工具可以在这里提供帮助,但我不确定是否需要它。

您最好的选择是关注比较函数并确保它为各种数据集返回正确的值。实际上查找比较函数应该相对简单,只需在所有文件中搜索Comparator即可。 .

关于java - 比较方法违反了它的一般契约!静态分析可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17311170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com