空属性赋值问题
使用
BeanUtils.copyProperties(source,target)
赋值时,若source中某些元素为空,会覆盖掉target中非空的元素,因此需要解决这个问题
-
创建
util.MyBeanUtils
类,查找并处理属性值为空的元素public class MyBeanUtils { public static String[] getNullPropertyNames(Object source) { BeanWrapper beanWrapper = new BeanWrapperImpl(source); PropertyDescriptor[] pds = beanWrapper.getPropertyDescriptors(); List<String> nullPropertyNames = new ArrayList<>(); for (PropertyDescriptor pd : pds) { String propertyName = pd.getName(); if (beanWrapper.getPropertyValue(propertyName) == null) { nullPropertyNames.add(propertyName)