BeanCopier 浅拷贝一个Object
时间: 2023-07-07 16:10:00 浏览: 45
BeanCopier可以用来实现对象之间的属性拷贝,包括浅拷贝和深拷贝。如果需要进行浅拷贝,可以使用以下方法:
```java
public static <T> T copyBean(Object source, Class<T> targetClass) {
if (Objects.isNull(source) || Objects.isNull(targetClass)) {
throw new IllegalArgumentException();
}
T target;
try {
target = targetClass.newInstance();
} catch (InstantiationException | IllegalAccessException e) {
throw new RuntimeException(e);
}
BeanCopier copier = BeanCopier.create(source.getClass(), targetClass, false);
copier.copy(source, target, null);
return target;
}
```
这个方法接收两个参数,source为源对象,targetClass为目标对象的类型。在方法内部,首先根据目标对象类型创建一个实例,然后使用BeanCopier创建一个拷贝器,最后使用拷贝器进行属性拷贝。由于BeanCopier进行的是浅拷贝,所以只会拷贝对象的引用,而不会拷贝对象的内容。
注意,在使用完BeanCopier后,还应该将其置为null,以避免内存泄漏。