在我们的应用程序中,我有一个例程,它手动迭代Hibernate加载的POJO的属性,并将这些属性分配给该对象的新实例,然后保存它。
e.g
Class TestClass{
Integer a;
String b;
public void setA(Integer a){
this.a = a;
}
public Integer getA(){
return a;
}
...
}
在它的行动中
TestClass objectOne = testDao.get(id);
TestClass objectTwo = new TestClass();
然后迭代就像
objectOne.setA(objectTwo.getA());
objectOne.setB(objectTwo.getB());
我想知道是否有更有效的方法来遍历 objectOne 的每个属性并将其设置为 ObjectTwo ,因为在我们的实际应用中这些对象有20个属性左右。
非常感谢你的帮助。
答案 0 :(得分:4)
不确定。查看Apache Commons BeanUtils lib。在那里你可以使用copyProperties(Object dest, Object orig)
答案 1 :(得分:1)
如果你没有,你可以使用反射在循环中做这个;我想使用commons库,尽管如果你没有添加库的问题,使用经过验证的代码似乎是更明智的选择到你现有的申请表。
编辑:
这对你来说已经够了
http://java.sun.com/developer/technicalArticles/ALT/Reflection/
虽然我不知道这个解决方案对ApacheCommons的性能,但我认为不会有太大的差异。