类BeanUtils
- 通过反射填充JavaBeans属性的实用方法。
这些实现由...提供BeanUtilsBean
。这些静态实用程序方法使用默认实例。更复杂的行为可以通过使用BeanUtilsBean
实例来提供。
构造函数的细节
BeanUtilsBean
public BeanUtilsBean()
使用新的属性和转换实例构造一个实例。
BeanUtilsBean
public BeanUtilsBean(ConvertUtilsBean convertUtilsBean)
- 参数:
convertUtilsBean
- - 使用它
ConvertUtilsBean
- 来执行从一个对象到另一个对象的转换 以来: 1.8.0
使用给定的转换实例和新PropertyUtilsBean
实例构造一个实例。
BeanUtilsBean
public BeanUtilsBean(ConvertUtilsBean convertUtilsBean, PropertyUtilsBean propertyUtilsBean)
- 参数:
convertUtilsBean
- - 使用它
ConvertUtilsBean
- 来执行从一个对象到另一个对象的转换
propertyUtilsBean
- - 使用它
PropertyUtilsBean
- 来访问属性
使用给定的属性和转换实例构造一个实例。
方法细节
copyProperties
public void copyProperties(Object dest,
Object orig)
抛出IllegalAccessException,
InvocationTargetException
对于属性名称相同的所有情况,将属性值从源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
- 如果属性访问器方法抛出异常