类BeanUtils
-
-
通过反射填充JavaBeans属性的实用方法。
这些实现由...提供
BeanUtilsBean
。这些静态实用程序方法使用默认实例。更复杂的行为可以通过使用BeanUtilsBean
实例来提供。
-
构造函数的细节
BeanUtilsBean
public BeanUtilsBean()
使用新的属性和转换实例构造一个实例。
BeanUtilsBean
public BeanUtilsBean(ConvertUtilsBean convertUtilsBean)
使用给定的转换实例和新
PropertyUtilsBean
实例构造一个实例。-
参数:
-
convertUtilsBean
- 使用它ConvertUtilsBean
来执行从一个对象到另一个对象的转换
以来:
- 1.8.0
-
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
ororig
参数为null或者dest
属性类型与源类型不同并且相关转换器尚未注册。 -
InvocationTargetException
- 如果属性访问器方法抛出异常