zoukankan      html  css  js  c++  java
  • 自定义BeanUtil 实现dto之间转换

    public class BeanUtil{
    	public static <T> T transfrom(Class<T> clazz, Object src) {
    		if (src == null) {
    			return null;
    		}
    		T instance = null;
    		try {
    			instance = clazz.newInstance();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		org.springframework.beans.BeanUtils.copyProperties(src, instance, getNullPropertyNames(src));
    		return instance;
    	}
    	private static String[] getNullPropertyNames(Object source) {
    	    // 忽略null 赋值
    		final BeanWrapper src = new BeanWrapperImpl(source);
    		PropertyDescriptor[] pds = src.getPropertyDescriptors();
    
    		Set<String> emptyNames = new HashSet<String>();
    		for (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);
    	}
    
    	public static void main(String[] args) {
    		User user = new User();
    		user.setPerson(new Person());
    		user.setBaseId(1);
    		UserDto transfrom = BeanUtil.transfrom(UserDto.class, user);
    		System.out.println(transfrom.toString());
    	}
    }
    
  • 相关阅读:
    hdu 1195 Open the Lock
    hdu 1180 诡异的楼梯
    hdu 1175 连连看
    背包(采药)
    LCS模板,求长度,并记录子串
    hdu 1159 Common Subsequence
    hdu 1231 最大连续子序列
    DP的简单应用
    hdu 1728 逃离迷宫
    点击页面其他地方,关闭弹框
  • 原文地址:https://www.cnblogs.com/liclBlog/p/15349488.html
Copyright © 2011-2022 走看看