1

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

非常感谢你的帮助。

4

2 回答 2

4

当然。查看Apache Commons BeanUtils库。在那里你可以使用copyProperties(Object dest, Object orig)

于 2012-05-04T16:16:11.313 回答
1

好吧,如果您不想使用公共库,您可以使用反射在循环中执行此操作,尽管如果您在将库添加到现有库时没有问题,使用经过验证的代码似乎是更明智的选择应用。

编辑:

这对你来说应该足够了

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

虽然我不知道这个解决方案与 ApacheCommons 的性能,但我认为不会有很大的不同。

于 2012-05-04T17:03:52.373 回答