一个简单的简短问题:object.hashCode()
和Objects.hashCode(object)
是否相等?有什么不同?他们是否从对象中计算相同的哈希值?
答案 0 :(得分:4)
正如你在实施中所看到的那样
public static int hashCode(Object o) {
return o != null ? o.hashCode() : 0;
}
是肯定的。如果对象o为空,它会阻止NPE。
答案 1 :(得分:3)
Objects.hashCode(object)
为object
, null
将返回零。
在这种情况下,NullPointerException
将被object.hashCode()
抛出。
对于非null
引用,函数是等效的。