知识大全 Apache Commons Lang之hashCode()、equals()
Posted 反射
篇首语:事亲尽教自天成,鉴本无尘水本清。相彼禽兮犹学习,灵乌反哺更分明。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Apache Commons Lang之hashCode()、equals()相关的知识,希望对你有一定的参考价值。
Apache Commons Lang之hashCode()、equals() 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Apache Commons Lang提供一套生成hashCode() equals()和pareTo()的API 简单易用 这个与toString()工具用法类似
一 实现策略
hashCode()
通过HashCodeBuilder反射来生成 这说明类的hashCode与类中所有的域都相关
也可以通过HashCodeBuilder实例来制定生成
equals()
也有两种生成方式 与toString() hashCode()的生成策略类似
pareTo()
与以上都类似
二 实例
为了测试 创佳两个类 Foo Bar 参看上篇文章 分别通过两种方式实现其hashCode()和equals()方法
public class Foo private String name; private int age; private Bar bar; public Foo(String name int age) this name = name; this age = age; //省略getter/setter方法
public class Bar private String name; public Bar(String name) this name = name; //省略getter/setter方法
实现hashCode()
反射方式
@Override public int hashCode() return HashCodeBuilder reflectionHashCode(this);
制定方式
@Override public int hashCode() return new HashCodeBuilder( ) append(name) append(age) append(bar) toHashCode();
实现equals()
反射方式
@Override public boolean equals(Object obj) return EqualsBuilder reflectionEquals(this obj);
制定方式
@Override public boolean equals(Object obj) boolean flag = false; if (obj != null && Foo class isAssignableFrom(obj getClass())) Foo f = (Foo) obj; flag = new EqualsBuilder() append(name f getName()) append(age f getAge()) append(bar f getBar()) isEquals(); return flag;
生成pareTo()
当然 实现pareTo()的前提是Foo类实现了Comparable接口 否则没啥意义
反射实现
public int pareTo(Object obj) return CompareToBuilder reflectionCompare(this obj);
制定实现
public int pareTo(Object obj) int flag = ; if (obj != null && Foo class isAssignableFrom(obj getClass())) Foo f = (Foo) obj; flag = new CompareToBuilder() append(name getName()) append(age f getAge()) append(bar f getBar()) toComparison(); return flag;
cha138/Article/program/Java/JSP/201311/19465相关参考
知识大全 Apache Commons DbUtils 快速上手
ApacheCommonsDbUtils快速上手 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Hi
知识大全 ORACLE入门之APACHE WEB SERVER管理
ORACLE入门之APACHEWEBSERVER管理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
java.lang.String类运算符重载 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Gi
Hash算法大全(java实现) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Hash算法有很
知识大全 struts源代码阅读(Commons-Pool包)
struts源代码阅读(Commons-Pool包) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 struts源代码阅读(Commons-Beanutils包)
struts源代码阅读(Commons-Beanutils包) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 使用 Jakarta Commons 之库组件攻略
使用JakartaCommons之库组件攻略 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Ja
知识大全 Apusic AS的Web应用中调用commons-logging
ApusicAS的Web应用中调用commons-logging 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
知识大全 Apusic AS的Web应用中调用commons-loggi
ApusicAS的Web应用中调用commons-loggi 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
Oracle使用hash分区优化分析函数查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在O