Java中重写对象的HashCode值

Redis的Set集合中如何把对象根据某个值的数据去重,简简单单就是重写对象的HashCode就可以了。

@SuppressWarnings("NonFinalFieldReferencedInHashCode")
@Override
public int hashCode() {
    return this.id == null ? super.hashCode() : this.id.hashCode();
}

@SuppressWarnings("NonFinalFieldReferenceInEquals")
@Override
public boolean equals(Object obj) {
    if (obj instanceof BlogComment) {
        if (this.id == null && ((BlogComment) obj).id == null) {
            return true;
        }
        if (this.id == null) {
            return false;
        }
        return this.id.equals(((BlogComment) obj).id);
    } else {
        return false;
    }
}
Comments: 3

「人生在世,留句话给我吧」

提交评论