读书人

利用反照写自动装配类或转换器

发布时间: 2012-10-31 14:37:32 作者: rapoo

利用反射写自动装配类或转换器
工作的时候,时常会遇到需要对一些类重新装配的问题,例如,由于Java传递对象本质上是传引用,直接利用对象类型的参数,可能会修改该参数;但是实际工作中,我们往往不想修参数,但是又希望利用该参数,那怎么办呢?
只好重新拷贝一个对象。
如果该类有几十个字段(实际往往是这样),我们装配对象就太费体力了,而且冗长的装配代码可能也不是我们想要的。那怎么办呢??
(1)对于通用情况的处理
由于类中的字段都是私有的,而访问控制一般借助于相应的get和set方法。那好吧,我们就可以利用反射,遍历所有set方法,然后调用源对象的get方法。ok,通用情况搞定。
(2)如果有例外的字段呢,有些字段并没有get或set方法,有has...或isOpen,之类的方法,直接调用源对象的get方法显然不行。对于这些例外字段,有些需要,有些实际上拷贝的时候可以不要。因此,我们可以实际2个list存放这些字段:
specialFieldNameList 和 needProcessFieldsList ,前者存放所有特殊的字段,后面那个列表存放以上特殊字段中需要进行处理的字段。
ok,明确了需求,可以动工了,代码如下:

 

读书人网 >编程

热点推荐