package com.shlanbao.tzsc.utils.tools; import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; import org.springframework.stereotype.Component; import java.util.HashSet; import java.util.Set; public class CopyUtils { public static String[] getNullPropertyNames (Object source) { final BeanWrapper src = new BeanWrapperImpl(source); java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors(); Set emptyNames = new HashSet(); for(java.beans.PropertyDescriptor pd : pds) { Object srcValue = src.getPropertyValue(pd.getName()); if (srcValue == null) emptyNames.add(pd.getName()); } String[] result = new String[emptyNames.size()]; return emptyNames.toArray(result); } /** * @Description: 从src赋值属性到target,忽略null属性 * @Param: [src, target] * @return: void * @Author: sunzhen * @Date: 2019/10/21 */ public static void copyProperties(Object src, Object target) { BeanUtils.copyProperties(src, target, getNullPropertyNames(src)); } }