这里有一个初学者的问题:
在我的大学作业中,我需要为我创建的新类重写对象类的equals方法。
新类是“Product”,每个产品都有一个唯一的“id”属性。以下是我如何重写它:
@Override
public boolean equals(Object obj) {
final Product other = (Product) obj;
if (id != other.id)
return false;
return true;
}
问题在于这只是10分中的1.5分,这让我怀疑它是否如此简单。因此,我开始搜索并发现了以下内容:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final Product other = (Product) obj;
if (id != other.id)
return false;
return true;
}
我觉得这些都没有意义,因为我认为最后一个 if 语句会检查所有其他 if 语句的限制。你们觉得呢?哪种方式更好地覆盖这个方法?
谢谢!