相关疑难解决方法(0)

自动检查equals,hashCode和compareTo的一致性的技巧?

我很清楚的合同需求,确保hashCode与一致equals,并且equals与一致compareTo.但是,这在实践中经常被违反.是否有可以自动测试此一致性的工具,技术或库?

我怀疑不幸的是答案是"不",但能够对这种可以利用库调用或框架的东西进行单元测试而不是需要手动编写自定义测试是有用的.每个重要的案例.

如果目前还不清楚我所说的一致意思是,hashCodeequals我指的是以下几点:

如果两个对象根据equals(Object)方法相等,则对两个对象中的每一个调用hashCode方法必须生成相同的整数结果.

对于equalscompareTo我指的是以下几点:

当且仅当e1.compareTo(e2)== 0具有与c的每个e1和e2的e1.equals(e2)相同的布尔值时,C类的自然排序被认为与equals一致.

java unit-testing equals hashcode compareto

19
推荐指数
2
解决办法
2487
查看次数

标签 统计

compareto ×1

equals ×1

hashcode ×1

java ×1

unit-testing ×1