寻找一种可以轻松计算任意类型的哈希值的方法。给定以下类(class):
class Foo<T> {
...
T value;
}
我已经使用 Objects.deepEquals
重写了 equals
方法来比较 value
字段。有没有一种简单的方法可以对 hashCode
执行相同的操作? guava 或 apache commons 中的一些实用方法(我已经将它们用于其他用途)?
不幸的是,当 value 是数组时,Objects.hash(field1, ... , value)
不起作用。
我知道一个选择是这样做
Arrays.deepHashCode(new Object[]{ field1, ... , value });
但为此创建一个新数组而不是仅仅循环它感觉是错误的
最佳答案
HashCodeBuilder.reflectionHashCode(object)
在 commons-lang3 中。
关于java - 具有泛型类型的哈希码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43947694/