迭代POJO属性并将其设置为另一个对象

时间:2012-05-04 16:12:10

标签: java hibernate rtti pojo

在我们的应用程序中,我有一个例程,它手动迭代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个属性左右。

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:4)

不确定。查看Apache Commons BeanUtils lib。在那里你可以使用copyProperties(Object dest, Object orig)

答案 1 :(得分:1)

如果你没有,你可以使用反射在循环中做这个;我想使用commons库,尽管如果你没有添加库的问题,使用经过验证的代码似乎是更明智的选择到你现有的申请表。

编辑:

这对你来说已经够了

http://java.sun.com/developer/technicalArticles/ALT/Reflection/

虽然我不知道这个解决方案对ApacheCommons的性能,但我认为不会有太大的差异。