首页

通过org.apache.commons.beanutils.BeanUtils实现对象和Map间相互转换处理

标签:BeanUtils,对象转map,map转对象     发布时间:2022-08-18   

一、代码说明

基于apachecommons-beanutils包的org.apache.commons.beanutils工具类,实现BeanUtils.describe、BeanUtils.populate、beanutils.BeanMap实现对象和Map间相互转换。

二、代码示例

import org.apache.commons.beanutils.BeanUtils;@b@import java.util.HashMap;@b@import java.util.Map;@b@ @b@public class Util {@b@@b@    /**@b@     * 将对象转Map@b@     * @param obj@b@     * @return@b@     */@b@    public static Map<String, Object> convertToMap(Object obj) {@b@        try {@b@            if (obj instanceof Map) {@b@                return (Map)obj;@b@            }@b@            Map<String, Object> returnMap = BeanUtils.describe(obj);@b@            returnMap.remove("class");@b@            return returnMap;@b@        } catch (Exception e) {@b@           log.error("convertToMap error={}",e.getMessage(),e);@b@        }@b@        return new HashMap();@b@    }@b@@b@    /**@b@     * 将map转对象处理@b@     * @param map@b@     * @param  beanInstance@b@     * @return@b@     */@b@   public  static <T>  T mapToObject(Map<String, Object> map, T beanInstance){@b@        if (map == null){@b@            return null;@b@        }@b@        Object obj = null;@b@        try {@b@            BeanUtils.populate(beanInstance, map);@b@        }catch (Exception e) {@b@            log.error("mapToObject error={}",e.getMessage(),e);@b@        }@b@        return beanInstance;@b@    }@b@@b@    /**@b@     * 转map处理@b@     * @param obj@b@     * @return@b@     */@b@    public static Map<?, ?> objectToMap(Object obj) {@b@        if(obj == null){@b@            return null;@b@        }@b@        try {@b@            return new org.apache.commons.beanutils.BeanMap(obj);@b@        } catch (Exception e) {@b@            log.error("objectToMap error={}",e.getMessage(),e);@b@        }@b@        return null;@b@    }@b@@b@@b@}