在java中复制类之间的字段
我有一对类,其中一个的字段是另一个的字段的子集,超集类的getter都可以预先命名(getFoo()).有没有办法有效地将所有常见字段从超集类复制到子集类,或者至少自动生成代码.
我应该注意到: >由于种种原因,我无法编辑超集类,也不能仅仅使用它们来避免进行数据拷贝. 编辑:一些简单的代码要求 public class SuperClass { private int foo; private int bar; private float bat; public int getFoo() { return foo; } public int getBar() { return bar; } public float getBat() { return bat; } } public class SubClass { private int foo; private float bat; } //wanted public static copySuperFieldsToSubMethod(Object super,Object sub) { ??? } // also acceptable would be some way to autogenerate all the assignment // functions needed 解决方法
您可以使用Spring框架中的BeanUtils类来执行此操作.它可能不一定比基于反射的技术更有效,但代码很简单.我期望所有你需要做的是:
BeanUtils.copyProperties(source,target); 此方法的Javadoc可在http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/BeanUtils.html#copyProperties(java.lang.Object,%20java.lang.Object)获得 如果不适合,您还可以考虑在Spring Framework中使用BeanWrapper / BeanWrapperImpl来遍历类的属性.这将比使用低级反射API更简单. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |