EqualsBuilder和&& amp;之间的真正区别是什么?

时间:2015-02-16 04:07:21

标签: java

假设我有一个包含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是一个很好的实现?

2 个答案:

答案 0 :(得分:0)

EqualsBuilder Javadoc表示(部分增加了重点),

  

此类提供了为任何类构建良好equals方法的方法。它遵循约书亚布洛赫Effective Java中规定的规则。特别是比较 doubles floats arrays 的规则可能会非常棘手。此外,确保 equals() hashCode() 一致可能很困难。

答案 1 :(得分:0)

field1.equals(o.getField1())仅适用于对象字段,它不适用于基元