首页 > 代码库 > 对象属性复制几种方式
对象属性复制几种方式
对象属性复制的三种方法:
1.Apache提供的BeanUtil.copyProperties和PropertyUtil.copyProperties两种方式
BeanUtils.copyProperties("转换后的类", "要转换的类");
PropertyUtils.copyProperties("转换后的类", "要转换的类");
口诀:后付钱(后付前:后面的复制给前面)
2.spring提供的BeanUtil.copyProperties方式
BeanUtils.copyProperties("要转换的类", "转换后的类");
和Apache参数顺序相反
3.cglib提供的BeanCopier方式
BeanCopier copy=BeanCopier.create("要转换的类", "转换后的类", false);
copy.copy(from, to, null);
1 /** 2 * Created by hunt on 2017/6/28. 3 */ 4 @Data 5 public class TestFrom { 6 private String name; 7 }
1 import lombok.Data; 2 3 /** 4 * Created by hunt on 2017/6/28. 5 */ 6 @Data 7 public class TestTo { 8 private String name; 9 }
第一种Apache方式的BeanUtils效率测试:
1 import org.apache.commons.beanutils.BeanUtils; 2 3 import java.lang.reflect.InvocationTargetException; 4 5 /** 6 * Created by hunt on 2017/6/28. 7 */ 8 public class TestDemo { 9 public static void main(String[] args) throws InvocationTargetException, IllegalAccessException { 10 TestFrom testFrom = new TestFrom(); 11 testFrom.setName("hunt"); 12 TestTo testTo = new TestTo(); 13 long begin = System.currentTimeMillis(); 14 for (int i = 0; i <100000 ; i++) {//十万次 15 BeanUtils.copyProperties(testTo,testFrom); 16 } 17 long end = System.currentTimeMillis(); 18 long mis = end -begin; 19 System.out.println("apache的BeanUtils.copyProperties耗时" + mis +"毫秒"); 20 System.out.println(testTo); 21 } 22 }
第一种Apache方式的PropertyUtils效率测试:
1 import org.apache.commons.beanutils.PropertyUtils; 2 3 import java.lang.reflect.InvocationTargetException; 4 5 /** 6 * Created by hunt on 2017/6/28. 7 */ 8 public class TestDemo { 9 public static void main(String[] args) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException { 10 TestFrom testFrom = new TestFrom(); 11 testFrom.setName("hunt"); 12 TestTo testTo = new TestTo(); 13 long begin = System.currentTimeMillis(); 14 for (int i = 0; i <100000 ; i++) {//十万次 15 PropertyUtils.copyProperties(testTo,testFrom); 16 } 17 long end = System.currentTimeMillis(); 18 long mis = end -begin; 19 System.out.println("apache的PropertyUtils.copyProperties耗时" + mis +"毫秒"); 20 System.out.println(testTo); 21 } 22 }
第二种Spring方式的BeanUtils效率测试:
1 import org.springframework.beans.BeanUtils; 2 3 /** 4 * Created by hunt on 2017/6/28. 5 */ 6 public class TestDemo { 7 public static void main(String[] args) { 8 TestFrom testFrom = new TestFrom(); 9 testFrom.setName("hunt"); 10 TestTo testTo = new TestTo(); 11 long begin = System.currentTimeMillis(); 12 for (int i = 0; i <1000000 ; i++) {//一百万次 13 BeanUtils.copyProperties(testFrom,testTo);//没抛异常 14 } 15 long end = System.currentTimeMillis(); 16 long mis = end -begin; 17 System.out.println("Spring的BeanUtils.copyProperties耗时" + mis +"毫秒"); 18 System.out.println(testTo); 19 } 20 }
对象属性复制几种方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。