浏览 1563 次
锁定老帖子 主题:JAVA中equals的编写
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间: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类型。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-11
这个有问题
2、 使用instanceof操作符检查“实参是否为正确的类型”。 |
|
返回顶楼 | |
发表时间:2008-03-11
用common-lang的equalsbuilder和tostringbuilder hashcodebuilder,写个模板,然后就方便了.
|
|
返回顶楼 | |