重写Object的hashCode和equals方法的最佳实践,hashcode最佳实践,重写Object的has
分享于 点击 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(); }}
用户点评