是否有任何理由在Objects.hash上使用Apache HashCodeBuilder?

时间:2012-11-29 20:09:25

标签: java hashcode

我正在覆盖对象的hashCode和equals方法。我正在使用Apache Commons库中的EqualsBuilder来覆盖equals。由于我使用的是Java 7,因此我计划使用内置的hash method in the Objects class而不是Apache Commons HashCodeBuilder。这种方法有什么问题吗?有什么理由比较喜欢一个吗?

2 个答案:

答案 0 :(得分:2)

HashCodeBuilder具有时髦的反射哈希码实现,但除此之外,不 - 您应该使用Objects

答案 1 :(得分:2)

一个区别是HashCodeBuilder可以反射地计算哈希码:

public int hashCode() {
  return HashCodeBuilder.reflectionHashCode(this);
}

也就是说,使用HashCodeBuilder,您不必列出单个字段,尽管可以。