2008-03-11
JAVA中equals的编写
下面是为实现一个高质量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类型。
评论
lingzantia
2008-03-11
用common-lang的equalsbuilder和tostringbuilder hashcodebuilder,写个模板,然后就方便了.
gordon@java
2008-03-11
这个有问题
2、 使用instanceof操作符检查“实参是否为正确的类型”。
2、 使用instanceof操作符检查“实参是否为正确的类型”。
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 778 次
- 性别:

- 来自: 南昌

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
hibernate 使用复合主键的 ...
问题没解决,反倒放进了新手贴,寒心!
-- by beyondqinghua -
hibernate 使用复合主键的 ...
我的意思是大家怎么处理复合主键,因为对Hibernate在企业中的应用不熟悉,大 ...
-- by beyondqinghua -
hibernate 使用复合主键的 ...
tangdaibing 写道不知道楼主要问的问题是什么,没有搞清楚楼主的意思 ...
-- by wxb_love -
hibernate 使用复合主键的 ...
不知道楼主要问的问题是什么,没有搞清楚楼主的意思
-- by tangdaibing -
hibernate lazy的问题学习 ...
这段时间又碰到了问题,发现还是没有效果,对lazy和fetch的作用认识还不够. ...
-- by beyondqinghua






评论排行榜