BeanUtils.copyProperties() 或使用 setter() 复制值
BeanUtils.copyProperties() or use setter() for copying values
我只是想找出哪种方法更适合将数据从一个对象复制到另一个对象。请找到以下代码
Bean1
:
private int id;
private int rollnumber;
private String name;
private String department;
//constructor and getter setter
Bean2
:
private int id;
private int rollnumber;
private String name;
private String dob;
private String department;
//constructor and getter setter
我有这两个类。现在,main() 是,
public static void main(String...args){
Bean1 bean1 = new Bean1(1,1001,"","");
Bean2 bean2 = new Bean2();
long startTime = System.currentTimeMillis();
//Copying using setter
bean2.setDepartment(bean1.getDepartment());
bean2.setDob(null);
bean2.setId(bean1.getId());
bean2.setName(bean1.getName());
bean2.setRollnumber(bean1.getRollnumber());
System.out.println("total time "+(System.currentTimeMillis()-startTime));
}
在这种方法中,与下面使用 BeanUtils.copyProperties.
的代码相比,时间差异非常小
public static void main(String...args){
Bean1 bean1 = new Bean1(1,1001,"","");
Bean2 bean2 = new Bean2();
long startTime = System.currentTimeMillis();
BeanUtils.copyProperties(bean1, bean2);
System.out.println("total time "+(System.currentTimeMillis()-startTime));
}
任何人请建议我在 组织项目中哪种方法更好。
提前致谢!!!
BeanUtils.copyProperties(bean1, bean2);
使用反射将 bean1 的属性复制到 bean2,这可能很昂贵。
使用 setter 复制属性将使您获得更多代码,但效率更高。
我认为对于如此简单且定义明确的任务,谨慎的做法是
手动设置属性而不是使用
BeanUtils.copyProperties(bean1, bean2);
。您将拥有更多的控制权。
Apache
库使用了反射,所以会比
您的手动方法。
.
我只是想找出哪种方法更适合将数据从一个对象复制到另一个对象。请找到以下代码
Bean1
:
private int id;
private int rollnumber;
private String name;
private String department;
//constructor and getter setter
Bean2
:
private int id;
private int rollnumber;
private String name;
private String dob;
private String department;
//constructor and getter setter
我有这两个类。现在,main() 是,
public static void main(String...args){
Bean1 bean1 = new Bean1(1,1001,"","");
Bean2 bean2 = new Bean2();
long startTime = System.currentTimeMillis();
//Copying using setter
bean2.setDepartment(bean1.getDepartment());
bean2.setDob(null);
bean2.setId(bean1.getId());
bean2.setName(bean1.getName());
bean2.setRollnumber(bean1.getRollnumber());
System.out.println("total time "+(System.currentTimeMillis()-startTime));
}
在这种方法中,与下面使用 BeanUtils.copyProperties.
的代码相比,时间差异非常小public static void main(String...args){
Bean1 bean1 = new Bean1(1,1001,"","");
Bean2 bean2 = new Bean2();
long startTime = System.currentTimeMillis();
BeanUtils.copyProperties(bean1, bean2);
System.out.println("total time "+(System.currentTimeMillis()-startTime));
}
任何人请建议我在 组织项目中哪种方法更好。
提前致谢!!!
BeanUtils.copyProperties(bean1, bean2);
使用反射将 bean1 的属性复制到 bean2,这可能很昂贵。 使用 setter 复制属性将使您获得更多代码,但效率更高。
我认为对于如此简单且定义明确的任务,谨慎的做法是 手动设置属性而不是使用
BeanUtils.copyProperties(bean1, bean2);
。您将拥有更多的控制权。Apache
库使用了反射,所以会比 您的手动方法。
.