我有最终字符串作为唯一 ID 的课程。当然我想覆盖equals所以比较只基于ID。那么只返回ID的哈希码是正确的做法吗,如下所示?
class ItemSpec{
final String name;
...
@Override
public boolean equals(Object o){
if(o != null && o instanceof ItemSpec){
return name.equalsIgnoreCase(((ItemSpec)o).name);
} else{
return false;
}
}
@Override
public int hashCode(){
if(name == null){
return 0;
} else{
return name.hashCode();
}
}
}