java重写equals及hashcode方法

本文介绍一下几种重写equals和hashcode的方法。

规则

  1. 如果两个对象相等的话,它们的hash code必须相等;
  2. 但如果两个对象的hash code相等的话,这两个对象不一定相等。

方法

使用lombok的注解

lombok-1.16.16.jar!/lombok/EqualsAndHashCode.class
比如

@ToString @EqualsAndHashCode public class XXXDto {  }

使用apache的方法

    @Override     public boolean equals(Object o) {         return EqualsBuilder.reflectionEquals(this,o);     }      @Override     public int hashCode() {         return HashCodeBuilder.reflectionHashCode(this);     }

如果仅仅是根据所有字段来生成,则可以使用reflection方法

Objects方法

java自带的Objects有个hashcode方法来根据字段生成

Objects.hash(mobile,name);

脚本宝典为你提供优质服务
脚本宝典 » java重写equals及hashcode方法

发表评论

提供最优质的资源集合

立即查看 了解详情