论坛首页 入门讨论版

JAVA中equals的编写

浏览 280 次
该帖已经被评为新手帖
作者 正文
时间: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 请登录后投票
论坛首页 入门讨论版

跳转论坛:
JavaEye推荐