我有一个类重写hashCode() 和equals()- 方法。当我处理时BigDecimal,我必须compareTo()使用Objects.equals():
public class MyProduct extends Product{
private BigDecimal price;
@Override
public int hashCode() {
return Objects.hash(price);
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // is this right or should this be deleted
if (obj == null || getClass() != obj.getClass()) return false;
final Product other = (Product) obj;
// is this right?
if (price == null ? (other.price != null) : price.compareTo(other.price) != 0) {
return false;
}
return super.equals(obj);
}
}
我有以下问题:
if (this == obj) return true;
我应该从-method 中删除该行吗equals()
?因为使用这一行,compareTo 不会被触发,并且可能会计算出错误的 equals(),对吗?
equals()方法可以改进吗?
有只小跳蛙
忽然笑
慕村225694
相关分类