疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java中复制两个不同类的对象的属性


 

   

  Apache的开源包BeanUtils用来复制两个对象的属性,要使用这个Apache的开源包,要先去官网下载commons-beanutils-1.X.jar包,http://www.apache.org/ 然后点击Apache Projects下面的链接Commons,可以找到链接BeanUtils,点击进入后就可以看到下载了。 ——BeanUtils.copyProperties()与PropertyUtils.copyProperties()用法及区别,例如静态方法 public static void copyProperties(java.lang.Object dest,java.lang.Object orig), BeanUtils对相同名称相同类型的属性从“orig”对象复制到“dest” 对象,不同名的属性不进行处理,另外java.util.Date类型的属性是不被支持的,而它的子类java.sql.Date是被支持的。因此如果对象包含时间类型的属性,且希望被转换的时候,一定要使用java.sql.Date类型,否则在转换时会提示argument mistype异常。

  PropertyUtils的工具类,它也提供copyProperties()方法,作用与 BeanUtils的同名方法十分相似,主要的区别在于后者提供类型转换功能,即发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围内进行转换,而前者不支持这个功能,但是速度会更快一些。

  这个方法经常用于MVC模式下,PO实体对象与VO显示对象之间的复制,因为这两个对象之间大多数的属性是一致的。

  当然Spring中也提供类似功能,需要jar包:spring-beans-x.x.x.x.jar包

  BeanUtils.copyProperties(Object source, Object target)