equals() 只依赖于一个 ID 合适吗?
2022-09-01 07:02:24
假设我有类:User
public class User {
private Long id;
private String name;
private Integer age;
private BigDecimal account;
// other fields, getters and setters
}
按如下方式重写该方法是否正确?equals
@Override
public boolean equals(Object ob) {
if (ob == null) {
return false;
}
if (this == ob) {
return true;
}
if (ob instanceof User) {
User other = (User) ob;
return this.id.equals(other.getId());
}
return false;
}
事实证明,对象的唯一性仅由其 ID 决定。但在我的应用程序中,始终是唯一的。它在数据库中提供。我的实现是否足以说明这一点?或者这不是最佳做法吗?id
equals
当然,我理解在这种情况下,实现应该是这样的:hashCode
@Override
public int hashCode() {
return id.intValue();
}