我正在覆盖对象的hashCode和equals方法。我正在使用Apache Commons库中的EqualsBuilder来覆盖equals。由于我使用的是Java 7,因此我计划使用内置的hash method in the Objects class而不是Apache Commons HashCodeBuilder。这种方法有什么问题吗?有什么理由比较喜欢一个吗?
答案 0 :(得分:2)
HashCodeBuilder
具有时髦的反射哈希码实现,但除此之外,不 - 您应该使用Objects
。
答案 1 :(得分:2)
一个区别是HashCodeBuilder
可以反射地计算哈希码:
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
也就是说,使用HashCodeBuilder
,您不必列出单个字段,尽管可以。