在我的Event类中,它有一个name
变量作为String
,我希望name
是对象的唯一标识符。在实施hashCode()
方法时,建议采用哪种方式或正确?
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
或
@Override
public int hashCode() {
return name != null ? name.hashCode() : 0;
}
答案 0 :(得分:3)
您也可以使用默认的Java hashCode
,因为它适用于大多数用途。不要过于复杂:第二个更简单的功能可以正常工作。
答案 1 :(得分:1)
当多个属性(可能是各种类型)时,第一个是模板,但如果您只有String
String
上定义的默认hashCode() (继承自Object
)会很好。