本文主要是介绍使用 BeanUtils.copyProperties属性拷贝,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
配合Beanutils设置对源对象中空的元素不进行复制,避免了目标对象某属性原本不为空,赋值后为空
自定义工具类
import org.springframework.beans.BeanUtils;
import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;import java.util.HashSet;
import java.util.Set;public class MyBeanUtils {public static void copyProperties(Object source, Object target) {BeanUtils.copyProperties(source, target, getNullPropertyNames(source));}/*** 配合Beanutils设置对源对象中空的元素不进行复制,避免了目标对象某属性原本不为空,赋值后为空*/public static String[] getNullPropertyNames(Object source) {BeanWrapper src = new BeanWrapperImpl(source);java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();Set<String> emptyNames = new HashSet<String>();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);}}
这篇关于使用 BeanUtils.copyProperties属性拷贝的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!