Beanutils.copyProperties( )用法

一、简介:

       BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。

二、用法:

        如果你有两个具有很多相同属性的JavaBean,一个很常见的情况就是PO对象(持久对象)和Dto对象(传输对象)。传统的方式是使用类似下面的语句对属性逐个赋值:

// 逐一赋值  
userDto.setUsername(user.getUsername);  
  
userDto.setPassword(user.getPassword);  
  
userDto.setAge(user.getAge);  
.........
.........

而我们使用 BeanUtils.copyProperties() 方法以后,代码量大大的减少,而且整体程序看着也简洁明朗,代码如下:

BeanUtils.copyProperties(userDto, user);  //第一个参数是转换后的类,第二个参数是待转换的类

如果User和UserDto间存在名称不相同的属性,则BeanUtils不对这些属性进行处理,需要手动处理。例如:

User类里面有个createDate 创建时间字段,而UserDto里面是createTime字段。BeanUtils.copyProperties()不会对此字段做任何处理。必须要自己手动处理。

注意:spring和apache的copy属性的方法源和目的参数的位置正好相反,所以导包和调用的时候都要注意一下。本例使用的是Apache下的包org.apache.commons.beanutils.BeanUtils。

posted @ 2020-03-21 19:26  月半大熊猫  阅读(385)  评论(0编辑  收藏  举报