还是在做谷粒商城项目时,在使用BeanUtils.copyProperties(obj1,obj2) 对会员价格进行属性对拷时,发现一个集合无论如何都拷不过去,但是视频却可以。解决之后记录下来。
问题现象
我的操作是将Skus 中的集合对拷到SkuReductionTO 的集合中,两个集合的泛型类名称相同,类中的属性也相同。不过却是两个不同的类。
问题分析
百度了许久都没有发现问题相同的帖子,最后查看源码,发现在源码的注释中写到 :从 Spring Framework 5.3 开始,此方法在匹配源对象和目标对象中的属性时遵循泛型类型信息
运行测试:
这里我使用的是 Spring boot 2.5.3 我换成视频版本 2.1.8.RELEASE。
2.1.8.RELEASE版本的 源码注释。
运行测试:
对拷成功!
结论
在高版本中对拷集合的泛型需要是同一个类才可以对拷成功,但是低版本中不需要,详细以Spring Framework 5.3作为分隔。
可能解释不正确,如有错误请指出。