在判断两个对象是否相等的时候,会先调用hashCode方法,如果返回ture则接着调用euals方法,如果都返回tru则表明两个对象相等
重写hashCode方法:
public int hashCode( ) {
return new HashCodeBuilder(17, 37)
.append(firstName)
.append(lastName).toHashCode( );
}
HashCodeBuilder构造器需要两个int型数字,用来作为产生hash code的偏移量,两个数字必须是单数和非零值,还可以附加类的一些属性,如果你需要附加所有的属性,你可以简单的使用:
public int hashCode( ) {
return HashCodeBuilder.reflectionHashCode(this);
}
重写equals方法:
public boolean equals(Object o) {
boolean equals = false;
if ( o != null &&
User.class.isAssignableFrom(o) ) { //可以用o instanceof User代替
User user = (User) o;
equals = (new EqualsBuilder( )
.append(firstName, user.firstName)
.append(lastName, user.lastName)).isEquals( );
}
return equals;
}
}
分享到:
相关推荐
- CompareToBuilder、EqualsBuilder和HashCodeBuilder:提供了简化对象比较和哈希码计算的构建器模式方法。 - ToStringBuilder和ToStringStyle:用于自定义对象的toString()方法输出格式。 2. Jakarta Commons ...
本文将深入探讨Jakarta Commons的核心价值及其组成部分之一——Commons Lang,旨在帮助读者更好地理解和应用这一框架。 ### 成功而低调的Jakarta Commons Jakarta Commons由Apache基金会维护,虽然不如某些明星...
`EqualsBuilder` 和 `HashCodeBuilder` 是 Apache Commons Lang 包中提供的两个工具类,用于简化 `equals()` 和 `hashCode()` 方法的实现。这些方法对于 Java 对象来说非常重要,尤其是在将对象放入集合(如 HashSet...
本文将详细介绍几个常用的Apache Commons组件:commons-lang、commons-beanutils和commons-collections。 #### 1. Commons Lang Commons Lang库提供了对Java语言及其标准库的扩展,主要聚焦于字符串处理、对象操作...
### Jakarta Commons中文介绍 #### 概述 Jakarta Commons是一系列独立可重用的Java组件,由...以上是对Jakarta Commons主要组件的详细介绍,这些组件为Java开发提供了丰富的功能,极大地提高了开发效率和代码质量。