2012-10-07 76 views
2

假设我有一个Java bean,称为Employee,具有一些属性。
我想将Employee的所有属性复制到同一个Java bean的另一个实例。将所有属性从Java bean设置为另一个

一个解决方案是使用getter获取属性并将其设置为另一个实例。但是如果POJO中有很多属性,那将会很耗时。

有没有更快捷的方法来实现?

+0

*“但是,这将是耗时的,如果有在POJO中有许多属性。*“=>你是否试图测量需要多长时间? – assylias

+0

费时我的意思是开发时间将用于写代码 – Anand

回答

1

随着assylias提到,复制一个bean需要的时间非常少。除非你需要每秒做几百万次。我认为重要的一点是减少愚蠢代码的数量,所以要“复制”一个bean,你可以使它扩展为Clonable,而JVM将完成剩下的工作。你只需要调用bean.clone()。

另一个更灵活的选项是使用Apache BeanUtils,它可以使用反射在对象之间进行复制。

+0

Apache BeanUtils对我来说是新东西..感谢它的工作 – Anand

+0

看看[apache commons](http://commons.apache.org/) )项目。那里有很多公用事业。我经常使用lang,IO,日志记录,CLI,beanutils和exec模块。 – Augusto

0

Object.clone执行浅拷贝,所以你可能会更好滚动自己的拷贝构造函数:

public class Dog { 
    public final List<String> names; 
    public int age; 
    public int weight; 

    public Dog() { 
     names = new ArrayList<String>(); 
    } 

    protected Dog(Dog original) { 
     names = new ArrayList<String>(original.names); 
     age = original.age; 
     weight = original.weight; 
    } 

    public Dog copy() { 
     return new Dog(this); 
    } 
} 

kudos

0

如果你只有几节课,支持克隆,然后重写克隆()可能是最快的解决方案。否则,如果你需要一个通用的解决方案,不要重新发明轮子:

相关问题