论坛首页 入门技术论坛

JAVA中equals的编写

浏览 1549 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-03-11  

下面是为实现一个高质量equals方法的处方:

1、  使用==操作符检查“实参是否为指向对象的一个引用”。

2、  使用instanceof操作符检查“实参是否为正确的类型”。

3、  把实参转换到正确的类型。

4、  对于该类中的每一个“关键”域,检查实参中的域是否与当前对象中对应的域值匹配。数值可以直接使用==比较,实例可以使用field==null?o.field==null:field.equals(o.field)

5、  当你编写完equals方法之后,应该问自己三个问题:他是否是对称的、传递的、一致的?

一些告戒:

1、  当你改写equals的时候,总要改写hashCode

2、  不要企求你的equals方法过于繁杂(周全)。

3、  不要使equals方法依赖于不稳定的资源,比如transient类型

   发表时间:2008-03-11  
这个有问题

2、  使用instanceof操作符检查“实参是否为正确的类型”。

0 请登录后投票
   发表时间:2008-03-11  
用common-lang的equalsbuilder和tostringbuilder hashcodebuilder,写个模板,然后就方便了.
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics