当前位置: 代码迷 >> 综合 >> Beanutils.copyproperties Javabean属性copy
  详细解决方案

Beanutils.copyproperties Javabean属性copy

热度:33   发布时间:2023-12-17 07:03:22.0

类BeanUtils

    • 通过反射填充JavaBeans属性的实用方法。

      这些实现由...提供BeanUtilsBean这些静态实用程序方法使用默认实例。更复杂的行为可以通过使用BeanUtilsBean实例来提供

  • 构造函数的细节

    • BeanUtilsBean

      public  BeanUtilsBean()

      使用新的属性和转换实例构造一个实例。

    • BeanUtilsBean

      public  BeanUtilsBeanConvertUtilsBean  convertUtilsBean)

      使用给定的转换实例和新PropertyUtilsBean实例构造一个实例。

      参数:
      convertUtilsBean - 使用它 ConvertUtilsBean  来执行从一个对象到另一个对象的转换
      以来:
      1.8.0
    • BeanUtilsBean

      public  BeanUtilsBeanConvertUtilsBean  convertUtilsBean,PropertyUtilsBean  propertyUtilsBean)

      使用给定的属性和转换实例构造一个实例。

      参数:
      convertUtilsBean - 使用它 ConvertUtilsBean  来执行从一个对象到另一个对象的转换
      propertyUtilsBean - 使用它 PropertyUtilsBean  来访问属性
  • 方法细节

copyProperties

public void  copyPropertiesObject  dest,Object  orig)抛出IllegalAccessExceptionInvocationTargetException

对于属性名称相同的所有情况,将属性值从源bean复制到目标Bean。对于每个属性,都会根据需要尝试进行转换。标准JavaBeans和DynaBeans的所有组合都被支持。存在于原始Bean中但不存在于目标Bean中(或在目标Bean中只读)的属性将被忽略。

如果起源“bean”实际上是a Map,则假定其包含String值的简单属性名称作为键,指向将被转换(如果需要)并在目标bean中设置的相应属性值。请注意,此方法旨在执行属性的“浅拷贝”,因此复制的属性(例如嵌套的属性)不会被复制。

此方法不同于此populate(),主要用于从HTTP请求上检索的请求参数映射填充JavaBean,不执行标量 - >索引或索引 - >标量操作。如果来源属性已建立索引,则目标属性必须也是。

如果您知道不需要类型转换,那么 copyProperties()方法PropertyUtils将比此方法执行得更快。

FIXME - 对于底层数组或Map没有getter和setter方法的索引和映射属性不会被此方法复制。

参数:
dest  - 其属性被修改的目标bean
orig  - 其属性被检索的Origin bean
抛出:
IllegalAccessException  - 如果调用者无权访问属性访问器方法
IllegalArgumentException - 如果 dest or  orig 参数为null或者 dest  属性类型与源类型不同并且相关转换器尚未注册。
InvocationTargetException  - 如果属性访问器方法抛出异常
  相关解决方案