在我们的应用程序中,我有一个例程,它手动迭代Hibernate加载的POJO的属性,并将这些属性分配给该对象的新实例,然后保存它。
例如
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 个属性左右。
非常感谢您的帮助。
当然。查看Apache Commons BeanUtils lib。在那里你可以使用copyProperties(Object dest, Object orig)
好吧,如果您不想使用commons库,则可以使用反射在循环中执行此操作,尽管如果您将库添加到现有应用程序中没有问题,那么使用经过尝试和测试的代码似乎是更明智的选择。
编辑:
这对你来说应该足够了
http://java.sun.com/developer/technicalArticles/ALT/Reflection/
虽然我不知道这个解决方案与ApacheCommons的性能,但我认为不会有太大的区别。