复制非同类对象同名属性(VO对象)的工具类

在将业务逻辑对象转换成VO对象给前端的时候,因为类型不同,而字段相同。 有时需要屏蔽一些数据,或者是某些特定的类型。而BeanUtils 里是通过 Class反射出来 get Set Method 然后Invoke 的。当目标类和源类不相同时,无法进行Copy, 于是看见遗留代码中一堆的 get /set 方法,从源类 get 了再放到目标类 set 。 一旦源类加了一个字段,Copy方法里也要加一个 get、set, 万一忘记了就是一个潜在的BUG。
看着这堆代码纠结,终于决定写一个CopyUtil 实现非同类对象之间的转换。
如包中所示, CopyUtil 为主体类,其余均为测试DEMO用。
下载地址:
CopyUtil
CopyUtil 对外提供有四个接口:
CopyUtil.copy(Object, Class<T>)  ;  @Returns T
CopyUtil.copyCollection(Collection, Class<T>) ; @Returns K extends Collection<T>
CopyUtil.copyArray(Object, Class<T>); @Returns T[]
CopyUtil.copyMap(Map, Class<K>, Class<V>); @Returns M extends Map<K,V>
分别对应Copy 四种不同的数据结构。

reeoo.com - web design inspiration

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注