假设我有一个Java bean,称为Employee,具有一些属性。
我想将Employee的所有属性复制到同一个Java bean的另一个实例。将所有属性从Java bean设置为另一个
一个解决方案是使用getter获取属性并将其设置为另一个实例。但是如果POJO中有很多属性,那将会很耗时。
有没有更快捷的方法来实现?
假设我有一个Java bean,称为Employee,具有一些属性。
我想将Employee的所有属性复制到同一个Java bean的另一个实例。将所有属性从Java bean设置为另一个
一个解决方案是使用getter获取属性并将其设置为另一个实例。但是如果POJO中有很多属性,那将会很耗时。
有没有更快捷的方法来实现?
随着assylias提到,复制一个bean需要的时间非常少。除非你需要每秒做几百万次。我认为重要的一点是减少愚蠢代码的数量,所以要“复制”一个bean,你可以使它扩展为Clonable,而JVM将完成剩下的工作。你只需要调用bean.clone()。
另一个更灵活的选项是使用Apache BeanUtils,它可以使用反射在对象之间进行复制。
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);
}
}
如果你只有几节课,支持克隆,然后重写克隆()可能是最快的解决方案。否则,如果你需要一个通用的解决方案,不要重新发明轮子:
*“但是,这将是耗时的,如果有在POJO中有许多属性。*“=>你是否试图测量需要多长时间? – assylias
费时我的意思是开发时间将用于写代码 – Anand