我只是想找到哪种方法更适合将数据从一个对象复制到另一个对象。请找到以下代码
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));
}
任何人都建议我在组织项目中哪种方法更好。
提前致谢!!!
答案 0 :(得分:1)
我认为对于如此简单明确的任务来说,这是谨慎的
手动设置属性而不是使用
BeanUtils.copyProperties(bean1, bean2);
。您将获得更多控制权。
Apache
库使用反射,所以它会慢得多
你的手动方法。
答案 1 :(得分:0)
BeanUtils.copyProperties(bean1, bean2);
使用Reflection将bean1的属性复制到bean2,这可能很昂贵。 使用setter复制属性将使您获得更多代码,但效率更高。