开发手册 欢迎您!
软件开发者资料库

Java Apache Bean实体对象转化工具类

本文主要介绍Java中,Java Apache Bean对象相互转换的工具类,以及相关的示例代码。
package com.wonhero.utils.util;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.beanutils.ConvertUtils;import org.apache.commons.beanutils.Converter;import org.apache.commons.beanutils.PropertyUtils;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import java.util.Map;/** * @ClassName BeanConvertUtil * @Description bean 转化工具类 **/public final class ApacheBeanConvertUtil {    private ApacheBeanConvertUtil() {    }    static {        ConvertUtils.register(new Converter() { //注册一个日期转换器            public Object convert(Class type, Object value) {                Date date1 = null;                if (value instanceof String) {                    String date = (String) value;                    SimpleDateFormat sdf = null;                    if (date.contains(":")) {                        sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");                    } else {                        sdf = new SimpleDateFormat("yyyy-MM-dd");                    }                    try {                        date1 = sdf.parse(date);                    } catch (ParseException e) {                        e.printStackTrace();                    }                    return date1;                }                return value;            }        }, Date.class);        ConvertUtils.register(new Java110StringConvert(), String.class);    }    /**     * 对象A转为对象B     * 这个也支持map转bean     *     * @param orgBean 原始对象     * @param dstBean 目标对象类     * @param     原始对象     * @param     目标对象     * @return 目标对象     */    public static  T2 covertBean(T1 orgBean, T2 dstBean) {        try {            BeanUtils.copyProperties(dstBean, orgBean);        } catch (Exception e) {            e.printStackTrace();            throw new RuntimeException("bean转换bean失败", e);        }        return dstBean;    }    /**     * 对象A转为对象B (类)     * 这个也支持map转bean     *     * @param orgBean 原始对象     * @param t       目标对象类     * @param     原始对象     * @param     目标对象     * @return 目标对象     */    public static  T2 covertBean(T1 orgBean, Class t) {        T2 returnModel = null;        try {            returnModel = t.newInstance();            BeanUtils.copyProperties(returnModel, orgBean);        } catch (Exception e) {            e.printStackTrace();            throw new RuntimeException("bean转换bean失败", e);        }        return returnModel;    }    /**     * 对象A集合转为对象B集合     *     * @param orgBeans 原始对象列表     * @param t        目标对象类     * @param      原始对象     * @param      目标对象     * @return 目标对象     */    public static  List covertBeanList(List orgBeans, Class t) {        List newBeanList = new ArrayList();        for (T1 orgbean : orgBeans) {            T2 newBean = covertBean(orgbean, t);            newBeanList.add(newBean);        }        return newBeanList;    }    /**     * bean转换为map对象     *     * @param orgBean 原始bean     * @return map对象     */    public static Map beanCovertMap(Object orgBean) {        Map newMap = null;        try {            newMap = PropertyUtils.describe(orgBean);        } catch (Exception e) {            throw new RuntimeException("bean转换Map失败", e);        }        return newMap;    }    /**     * bean集合转换为map对象集合     *     * @param orgBeans 原始bean 列表     * @return map对象 列表     */    public static List> beanCovertMapList(List orgBeans) {        List> newMaps = new ArrayList>();        Map newMap = null;        for (Object orgbean : orgBeans) {            newMap = beanCovertMap(orgbean);            newMaps.add(newMap);        }        return newMaps;    }}