欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

重写Object的hashCode和equals方法的最佳实践,hashcode最佳实践,重写Object的has

来源: javaer 分享于  点击 45489 次 点评:266

重写Object的hashCode和equals方法的最佳实践,hashcode最佳实践,重写Object的has


重写Object的hashCode和equals方法可以使用commons-lang, 可以在项目添加如下maven依赖:

         <dependency>                <groupId>commons-lang</groupId>                <artifactId>commons-lang</artifactId>                <version>2.6</version>            </dependency>

使用common-lang包中的HashCodeBuilder和EqualsBuilder来重写hashCode和equals方法:

如下实例:

package cn.outofmemory.entity;import org.apache.commons.lang.builder.EqualsBuilder;import org.apache.commons.lang.builder.HashCodeBuilder;/** * Address 地址信息 * * Created by byrx.net on 2015/10/15. */public class Address {    private int id;    private String address;    private String zip;    private byte yn;    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }    public String getZip() {        return zip;    }    public void setZip(String zip) {        this.zip = zip;    }    public byte getYn() {        return yn;    }    public void setYn(byte yn) {        this.yn = yn;    }    @Override    public int hashCode() {        return new HashCodeBuilder()                .append(id)                .append(address)                .append(zip)                .append(yn)                .toHashCode();    }    @Override    public boolean equals(Object obj) {        if (!(obj instanceof Address))            return false;        if (obj == this)            return true;        Address  target = (Address) obj;        return new EqualsBuilder()                .append(id, target.id)                .append(address, target.address)                .append(zip, target.zip)                .append(yn, target.yn)                .isEquals();    }}
相关栏目:

用户点评