现在的位置: 首页 > 综合 > 正文

Java 中正确使用 hashCode 和 equals 方法

2013年10月06日 ⁄ 综合 ⁄ 共 759字 ⁄ 字号 评论关闭

转载自:http://www.oschina.net/question/82993_75533

在这篇文章中,我将告诉大家我对hashCode和equals方法的理解。我将讨论他们的默认实现,以及如何正确的重写他们。我也将使用Apache Commons提供的工具包做一个实现。 

目录:

  1. hashCode()和equals()的用法
  2. 重写默认实现
  3. 使用Apache Commons Lang包重写hashCode()和equals()
  4. 需要注意记住的事情
  5. 当使用ORM的时候特别要注意的

hashCode()和equals()定义在Object类中,这个类是所有java类的基类,所以所有的java类都继承这两个方法。


使用hashCode()和equals()

hashCode()方法被用来获取给定对象的唯一整数。这个整数被用来确定对象被存储在HashTable类似的结构中的位置。默认的,Object类的hashCode()方法返回这个对象存储的内存地址的编号。

重写默认的实现

如果你不重写这两个方法,将几乎不遇到任何问题,但是有的时候程序要求我们必须改变一些对象的默认实现。

来看看这个例子,让我们创建一个简单的类Employee

01 public class Employee
02 {
03     private Integer
id;
04     private String
firstname;
05     private String
lastName;
06     private String
department;
07  
08     public Integer
getId() {
09         return id;
10     }
11     public void setId(Integer
id) {
12         this.id
= id;
【上篇】
【下篇】

抱歉!评论已关闭.