`

jakarta commons lang:HashCodeBuilder和EqualsBuilder

阅读更多
在判断两个对象是否相等的时候,会先调用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;

    }

}
分享到:
评论

相关推荐

    JakartaCommons 详细教程更助于你的基础

    - CompareToBuilder、EqualsBuilder和HashCodeBuilder:提供了简化对象比较和哈希码计算的构建器模式方法。 - ToStringBuilder和ToStringStyle:用于自定义对象的toString()方法输出格式。 2. Jakarta Commons ...

    Jakarta Commons笔记

    本文将深入探讨Jakarta Commons的核心价值及其组成部分之一——Commons Lang,旨在帮助读者更好地理解和应用这一框架。 ### 成功而低调的Jakarta Commons Jakarta Commons由Apache基金会维护,虽然不如某些明星...

    Jakarta Commons CookBook学习笔记

    `EqualsBuilder` 和 `HashCodeBuilder` 是 Apache Commons Lang 包中提供的两个工具类,用于简化 `equals()` 和 `hashCode()` 方法的实现。这些方法对于 Java 对象来说非常重要,尤其是在将对象放入集合(如 HashSet...

    Apache commons jar包常用类讲解--Jakarta Commons 学习.pdf

    本文将详细介绍几个常用的Apache Commons组件:commons-lang、commons-beanutils和commons-collections。 #### 1. Commons Lang Commons Lang库提供了对Java语言及其标准库的扩展,主要聚焦于字符串处理、对象操作...

    Jakarta+Commons中文介绍

    ### Jakarta Commons中文介绍 #### 概述 Jakarta Commons是一系列独立可重用的Java组件,由...以上是对Jakarta Commons主要组件的详细介绍,这些组件为Java开发提供了丰富的功能,极大地提高了开发效率和代码质量。

Global site tag (gtag.js) - Google Analytics