重庆奉节网站建设公司,自己电脑做网站用备案,公众号小程序如何开发,哈尔滨网站建设云聚达介绍
org.springframework.beans.BeanUtils.copyProperties(Object, Object)是spring 框架的对象工具类#xff1a;BeanUtils下的一个拷贝对象属性的方法。
官方注释 把给定的源对象属性值拷贝到目标对象中。
注意#xff1a;源对象类与目标对象类不一定非要完全匹配…介绍
org.springframework.beans.BeanUtils.copyProperties(Object, Object)是spring 框架的对象工具类BeanUtils下的一个拷贝对象属性的方法。
官方注释 把给定的源对象属性值拷贝到目标对象中。
注意源对象类与目标对象类不一定非要完全匹配也不必要由哪一方派生只要属性匹配就可以。任何源对象的暴露在外的而目标对象没有暴露的属性都将默认忽略。
这只是一个简便的方法。对于更复杂的转换需要请考虑使用完整的BeanWrapperBeanWrapper.class。
应用
这个静态方法实际上就是根据对象属性的Set方法名来匹配的Set方法名一致则可以拷贝成功如果不一致则就算属性名相同也不会拷贝成功。
不过一般情况下Set方法是根据属性名自动生成的那么同样的Set名一定是由同样的属性名生成的。所以只要保证属性名一致生成Set后不重构属性名就不会有问题。因为对象属性重构之后不会修改Set方法名因此如果导致了重构后属性名与Set方法名不对应就可能copy属性失败。
可以结合映射的方式对其进行调用如下所示 public static T T copy(Object srcObj, ClassT destClass) {if(srcObj null) {return null;}T destObj null;try {destObj destClass.newInstance();} catch (InstantiationException | IllegalAccessException e) {throw new RuntimeException(e);}BeanUtils.copyProperties(srcObj, destObj);return destObj;}
注意这样的方式是通过目标类的class对象来生成一个新的目标对象从而复制属性也就是说如果需要把源对象中的属性放入一个新的对象中可以用上面的进一步封装但如果是一个已经有部分属性的目标对象那么依然要直接使用copyProperties()方法。