一、问题背景
在做 源对象 与 目标对象 拷贝时目标对象中继承父类的属性没有成功复制。
二、Spring 的 BeanUtils.copyProperties方法
使用 Spring 的 BeanUtils.copyProperties
方法进行属性拷贝时,只会拷贝源对象中定义的属性,而不会拷贝目标对象中继承自父类的属性。
因为 BeanUtils.copyProperties()
方法是基于 Java 反射实现的,它只能访问源对象中的属性,无法访问目标对象中继承自父类的属性。
如果需要将源对象中的属性拷贝到目标对象中,包括目标对象中继承自父类的属性,可以使用其他的 Java 对象映射工具,比如 Hutool的 BeanUtil、Apache Commons BeanUtils 和 Dozer 等。
这些工具可以通过配置来决定是否拷贝继承自父类的属性。
三、demo
以下是使用 Hutool 中的 BeanUtil.copyProperties()
方法进行属性拷贝的示例代码: