BeanUtil.copyProperties() 如何使用
时间: 2024-08-22 08:02:17 浏览: 57
`BeanUtil.copyProperties()` 是Apache Commons BeanUtils库中的一个常用工具方法,用于在Java对象之间复制属性。它通常在需要把数据从一个对象复制到另一个相似结构的对象时使用,例如从一个实体类对象填充到UI组件或者从数据库查询结果填充到业务对象等场景。
使用方法如下:
```java
import org.apache.commons.beanutils.BeanUtils;
// 假设有两个类
class Source {
private String sourceField;
// 其他字段...
}
class Target {
private String targetField;
// 其他字段...
}
public void copyData(Source source, Target target) throws BeansException {
BeanUtils.copyProperties(target, source); // 这里会把source的所有属性值复制到target上
}
```
在这个例子中,`Source`对象的属性会被自动复制到`Target`对象,只要它们的名称和数据类型相匹配。注意,`copyProperties`默认不会复制私有字段和静态字段,也不支持枚举类型和集合类型的深度复制。
如果你想要更精细地控制哪些属性被复制,可以传入数组或Set指定源对象的属性名:
```java
String[] propertyNames = {"sourceField"};
BeanUtils.copyProperties(target, source, propertyNames);
```
阅读全文