假设我有一个包含10个不同字段的Object。那么这两种实现之间真正的区别是什么?
使用Apache EqualsBuilder
return new EqualsBuilder()
.append(field1, o.getField1())
.append(field2, o.getField2())
....
.isEquals();
使用Home build
return field1.equals(o.getField1())
&& field2.equals(o.getField2())
....;
这两个实现我必须主要新的附加字段或在重构时删除字段。所以我不确定为什么人们认为EqualsBuilder是一个很好的实现?
答案 0 :(得分:0)
EqualsBuilder
Javadoc表示(部分增加了重点),
此类提供了为任何类构建良好equals方法的方法。它遵循约书亚布洛赫Effective Java中规定的规则。特别是比较
doubles
,floats
和arrays
的规则可能会非常棘手。此外,确保equals()
和hashCode()
一致可能很困难。
答案 1 :(得分:0)
field1.equals(o.getField1())
仅适用于对象字段,它不适用于基元