必威体育Betway必威体育官网
当前位置:首页 > IT技术

BeanUtils.copyProperties方法复制不同对象间的属性值

时间:2019-10-03 21:44:29来源:IT技术作者:seo实验室小编阅读:69次「手机版」
 

beanutils.copyproperties

1:以下两个不同的包都存在BeanUitls.copyProperties方法

org.Springframework.beans.beanutils.copyproperties(Object source, Object target) throws BeansException

org.apache.commons.beanutils.BeanUtils.copyProperties(Object dest, Object orig)throws IllegalAccessException, InvocationTargetException

2:测试属性名相同类型不同的两个类,执行BeanUtils.copyProperties方法

调用org.springframework.beans.BeanUtils.copyProperties,如果source与target中存在属性名相同类型不同的情况,则target中对应的属性值为null

调用org.apache.commons.beanutils.BeanUtils.copyProperties,如果dest与orig中存在属性名相同类型不同的情况,则会抛出illegalargumentException异常

public class WoType {

	private Long id;
	
	private String name;
	
	private WoType parent;

	@Override
	public String toString() {
		return "WoType [id=" + id + ", name=" + name + ", Parent=" + Parent + "]";
	}
}

 public class WoTypeVo {

	private Long id;
	
	private String name;
	
	private WoTypeVo Parent;

	@Override
	public String toString() {
		return "WoTypeVo [id=" + id + ", name=" + name + ", Parent=" + Parent + "]";
	}
}

初始化WoType对象

  @Before
	public void before() {
		woType=new WoType();
		woType.setId(100L);
		woType.setName("收货地址错误");
		//封装parent
		WoType parent=new WoType();
		parent.setId(101L);
		parent.setName("快递问题");
		woType.setParent(parent);
	}

测试org.springframework.beans.BeanUtils.copyProperties:

  @Test
	public void testSpringBeanUtils() {
		WoTypeVo woTypeVo=new WoTypeVo();
		org.springframework.beans.BeanUtils.copyProperties(woType, woTypeVo);
		System.out.println(woType.toString()+" "+woTypeVo.toString());
	}
	结论:WoType [id=100, name=收货地址错误, Parent=WoType [id=101, name=快递问题, Parent=null]] WoTypeVo [id=100, name=收货地址错误, Parent=null]

测试org.apache.commons.beanutils.BeanUtils.copyProperties:

@Test
	public void testApacheBeanUtils() {
		WoTypeVo woTypeVo=new WoTypeVo();
		try {
			org.apache.commons.beanutils.BeanUtils.copyProperties(woTypeVo, woType);
		} catch (IllegalAccessException | InvocationTargetException e) {
			e.printstacktrace();
		} 
		System.out.println(woType.toString()+" "+woTypeVo.toString());
	}
	
结论:抛出IllegalArgumentException异常

相关阅读

VS C#调试:未将对象引用设置到对象的实例

除了网上提到的众多原因,这里提到的是另一种情况,也会有以下提示产生。 该情况下代码无问题,原因是提示有问题的代码句或段在整段代

面向对象三大特点

封装: 1.封装是面向对象编程的一大特点 2.面向对象编程的第一步,将属性和方法封装到一个抽象的类中(抽象是因为类不能被直接使用) 3.

JSP--之转换原理和内置对象

博客园首页新随笔联系管理订阅随笔- 92  文章- 0  评论- 222 Java Web(五) JSP详解(四大作用域九大内置对象等)  前面讲解了

[原创]网站文章页面添加分享按钮,百度按钮代码复制使用

在自己的站点上写了些文章,有些文章想要分享给朋友或者朋友圈等等地方,没有分享功能只能贴网址似乎很不友好,如果通过分享按钮分享的

怎么批量复制幻灯片

有时候我们需要对幻灯片复制,但是不止一张,如果手工去复制粘贴恐怕太麻烦了,怎么批量复制呢?很简单下面一起看看如何批量复制幻灯片!

分享到:

栏目导航

推荐阅读

热门阅读