Java中的通用哈希码

use*_*453 4 java hashcode

我对Java有些新意.是否有一个哈希码实用程序类可以为类中包含任意类型成员的泛型对象生成一个好的哈希代码?我可以递归地逐步执行通用java对象的实例并累积一个哈希代码,以保证此类的两个相等对象将始终计算相同的哈希代码吗?这个问题的上下文是Android和我在使用的Java版本中无法使用Objects.hashCode()等(我没有选择迁移到更新的版本). 我猜到答案是根据我到目前为止看到的结果.

JB *_*zet 10

从Java 7开始,你有Objects.hash()

return Objects.hash(this.foo, this.bar, this.baz);
Run Code Online (Sandbox Code Playgroud)

它还有助于实现平等:

return Objects.equals(this.foo, o.foo)
       && Objects.equals(this.bar, o.baz)
       && Objects.equals(this.baz, o.baz)
Run Code Online (Sandbox Code Playgroud)