java - 具有泛型类型的哈希码

标签 java guava apache-commons guava-testlib

寻找一种可以轻松计算任意类型的哈希值的方法。给定以下类(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 });

但为此创建一个新数组而不是仅仅循环它感觉是错误的

最佳答案

关于java - 具有泛型类型的哈希码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43947694/

相关文章:

java - 在 C++ 和 Java 中使用 map

java - 如何编写接收 ADT 并删除重复项的方法?

java - apache commons 压缩的 Tar 问题

java - 使用 Apache CSVParser 时如何去掉 header 中的额外引号

java - 无法清除过时文件的服务器 : null java. lang.NullPointerException

java - Guice @Singleton 必须遵循 Singleton 设计模式吗?

java - 事件在事件总线中存在多长时间?

java - 使用 Guava 自动刷新缓存

java - 当值引用回键时如何使用弱引用进行缓存?

java - 获取所有包含特定字符的文件夹