帮我写个java工具类,能把A对象的属性拷贝到B对象,对象中的属性包含对象和对象集合
时间: 2023-06-03 21:01:58 浏览: 113
java不同对象之间及集合的复制
5星 · 资源好评率100%
好的,这是一个技术问题,我可以回答。可以使用Java BeanUtils类中的copyProperties方法来实现。具体代码如下:
```
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils;
public class ObjectCopyUtils {
public static void copyProperties(Object dest, Object orig) throws Exception {
//copy基本数据类型
BeanUtils.copyProperties(dest, orig);
//copy对象数据类型
copyBeanProperties(dest, orig);
}
private static void copyBeanProperties(Object dest, Object orig) throws Exception {
if (orig == null) {
return;
}
try {
PropertyUtils.describe(orig).forEach((key, value) -> {
if ("class".equals(key)) {
return;
}
try {
Object destValue = PropertyUtils.getProperty(dest, key);//获取目标对象中的属性值
if (destValue != null) {
copyProperties(destValue, value);//递归复制对象类型属性
} else {
BeanUtils.setProperty(dest, key, value);//直接set属性值
}
} catch (Exception e) {
e.printStackTrace();
}
});
} catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}
```
使用时可以调用该工具类的copyProperties方法即可实现对象属性拷贝。
```
A a = new A();
B b = new B();
ObjectCopyUtils.copyProperties(b, a);
```
阅读全文