6

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

4

2 回答 2

3

HashCodeBuilder有时髦的反射哈希码实现,但除此之外,不——你可能应该使用Objects.

于 2012-11-29T20:12:26.590 回答
3

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

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

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

于 2012-11-29T20:14:15.530 回答