对象转换工具类BeanUtil

Java Bean工具类详解
本文详细介绍了Java中用于处理Bean对象的工具类,包括对象之间的转换、Bean到Map的转换、Map到Bean的转换以及List集合间的转换。通过具体代码示例,展示了如何使用这些方法进行高效的数据操作。
public class BeanUtil {
    private static final Logger logger = LoggerFactory.getLogger(BeanUtil.class);

    /**
	 * 功能描述:浅拷贝 - 转换Bean对象
	 * 
	 * @param sourceObject
	 * @param clazz
	 * @return
	 * @author Elivense White
	 */
	public static <T> T convertToBean(Object sourceObject, Class<T> clazz) {
		T result = null;
		if (sourceObject != null) {
			try {
				result = clazz.newInstance();
			} catch (Exception e) {
				logger.error("convert error", e);
				e.printStackTrace();
			}
			BeanUtils.copyProperties(sourceObject, result);
		}
		return result;
	}


   /**
	 * 功能描述:浅拷贝 - 转换List<bean> 对象
	 * 
	 * @param sourceList
	 * @param clazz
	 * @return
	 * @author Elivense White
	 */
	public static <T> List<T> convertToBeanList(List<?> sourceList, Class<T> clazz) {
		List<T> resultList = null;
		try {
			if (sourceList != null && sourceList.size() > 0) {
				resultList = new ArrayList<T>();

				Iterator<?> iterator = sourceList.iterator();
				while (iterator.hasNext()) {
					T t = clazz.newInstance();
					Object sourceObject = iterator.next();
					BeanUtils.copyProperties(sourceObject, t);
					resultList.add(t);
				}
			}
		} catch (Exception e) {
			logger.error("convert error", e);
			e.printStackTrace();
		}
		return resultList;
	}

 /**
     * 将对象装换为map
     *
     * @param bean
     * @return
     */
    public static <T> Map<String, Object> beanToMap(T bean) {
        Map<String, Object> map = Maps.newHashMap();
        if (bean != null) {
            BeanMap beanMap = BeanMap.create(bean);
            for (Object key : beanMap.keySet()) {
                map.put(key + "", beanMap.get(key));
            }
        }
        return map;
    }

 /**
     * 将map装换为javabean对象
     *
     * @param map
     * @param bean
     * @return
     */
    public static <T> T mapToBean(Map<String, Object> map, T bean) {
        BeanMap beanMap = BeanMap.create(bean);
        beanMap.putAll(map);
        return bean;
    }

 /**
     * 将List<T>转换为List<Map<String, Object>>
     *
     * @param objList
     * @return
     * @throws JsonGenerationException
     * @throws JsonMappingException
     * @throws IOException
     */
    public static <T> List<Map<String, Object>> objectsToMaps(List<T> objList) {
        List<Map<String, Object>> list = Lists.newArrayList();
        if (objList != null && objList.size() > 0) {
            Map<String, Object> map = null;
            T bean = null;
            for (int i = 0, size = objList.size(); i < size; i++) {
                bean = objList.get(i);
                map = beanToMap(bean);
                list.add(map);
            }
        }
        return list;
    }

/**
     * 将List<Map<String,Object>>转换为List<T>
     *
     * @param maps
     * @param clazz
     * @return
     * @throws InstantiationException
     * @throws IllegalAccessException
     */
    public static <T> List<T> mapsToObjects(List<Map<String, Object>> maps, Class<T> clazz)
            throws InstantiationException, IllegalAccessException {
        List<T> list = Lists.newArrayList();
        if (maps != null && maps.size() > 0) {
            Map<String, Object> map = null;
            T bean = null;
            for (int i = 0, size = maps.size(); i < size; i++) {
                map = maps.get(i);
                bean = clazz.newInstance();
                mapToBean(map, bean);
                list.add(bean);
            }
        }
        return list;
    }


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值