自动检查等值,哈希码和比较到的一致性的技术?
我很清楚合同需要确保这与 一致,并且与 一致。但是,这在实践中经常被违反。是否有任何工具、技术或库可以自动测试这种一致性?hashCode
equals
equals
compareTo
不幸的是,我怀疑答案是否定的,但是能够对这种可以使用库调用或框架的事情进行单元测试将是有用的,而不是需要为每个重要情况手动编写自定义测试。
如果不清楚我所说的一致性是什么意思,我指的是以下内容:hashCode
equals
如果根据 equals(Object) 方法,两个对象相等,则对两个对象中的每个对象调用 hashCode 方法必须生成相同的整数结果。
对于和我指的是以下内容:equals
compareTo
当且仅当 e1.compareTo(e2) == 0 对于 C 类的每个 e1 和 e2 具有与 e1.equals(e2) 相同的布尔值时,类 C 的自然排序称为与 equals 一致。