探讨:反射法比较两个对象的属性值是否相同 [ 光影人像 东海陈光剑 的博客 ]
caiyu同学提出了重构equals方法的办法来比较对象的属性值,我把采用反射的方式比较属性值的办法列出来,探讨一下
这个方法比较的是两个相同类的对象之间的特定属性是否相同。
扩展一下,再做一个内部类,叫PP,只要PP里面有getP1()和getP2()的方法,一样可以对比。
再扩展一下,objectDOEquals(Object a, Object b, String[] props)里面传入的参数改成Object[] obs,String[] props,这样可以比较任意多个对象的任意多个属性是否相等了。
这么做的好处是无需重构待比较的类,可比较任意方法,较有通用性。
(为了节省版面,代码里面注释全部去掉了,声明常量的地方不符合编码规范)
![objectequeasutil objectequeasutil](http://rdc.taobao.com/blog/qa/wp-content/uploads/2009/02/objectequeasutil.jpg)
我们从来只做一件事,分享.
让美在这个世界流转
让倍感无趣的 受伤的 彷徨的 孤独的 或是心情忧郁的 人生黯淡的人们
能有一次机会
去再一次发现这个世界的美
并把美传递给他人
---光影人像(Follow WeChat public number with interest)