博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaBean与Map的相互转换
阅读量:7051 次
发布时间:2019-06-28

本文共 4196 字,大约阅读时间需要 13 分钟。

package com.bizvane.utils.tools;import java.lang.reflect.Field;import java.util.Arrays;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.Map;import java.util.Set;import org.apache.log4j.Logger;import org.springframework.util.StringUtils;public class BeanUtils extends org.apache.commons.beanutils.BeanUtils{    private static final Logger logger = Logger.getLogger(BeanUtils.class);        private static final String EXCLUDE_UID = "serialVersionUID";        /**     * 类转换为map    * @param bean    * @param isExcludeUid 是否排除序列化    * @param isExcludeNullOrEmpty 是否排除空或者null值    * @param isAsc 是否ascii排序    * @return 【参数说明】    *     * @return Map<String,Object> 【返回类型说明】    * @exception throws 【违例类型】 【违例说明】    * @see 【类、类#方法、类#成员】     */    public static Map<String, Object> beanToMap(Object bean,            boolean isExcludeUid, boolean isExcludeNullOrEmpty, boolean isAsc)    {        if (null == bean)        {            return null;        }                Map<String, Object> result = new HashMap<String, Object>();        try        {            Field[] fields = bean.getClass().getDeclaredFields();            for (Field field : fields)            {                //解除访问权限                field.setAccessible(true);                String key = field.getName();//属性名                                //排除序列化产生的serialVersionUID                if (isExcludeUid && !StringUtils.isEmpty(key)                        && EXCLUDE_UID.equals(key))                {                    continue;                }                                Object value = field.get(bean);//值                //排除值为空的字段                if (isExcludeNullOrEmpty && null == value)                {                    continue;                }                result.put(key, value);                if (isAsc)                {                    result = ascSort(result);                }            }        }        catch (Exception e)        {            e.printStackTrace();            logger.error("bean转换map出错");        }        return result;    }        /**     * 对map进行ascII排序     *     * @param map    * @return 【参数说明】    *     * @return Map<String,Object> 【返回类型说明】    * @exception throws 【违例类型】 【违例说明】    * @see 【类、类#方法、类#成员】     */    public static Map<String, Object> ascSort(Map<String, Object> map)    {                Map<String, Object> result = new LinkedHashMap<String, Object>();        Set<String> keySet = map.keySet();        String[] array = keySet.toArray(new String[keySet.size()]);        Arrays.sort(array, String.CASE_INSENSITIVE_ORDER);        for (String key : array)        {            result.put(key, map.get(key));        }                return result;    }        /**     * 类转换为map     * 默认排除UID属性     * 默认不排除为null值    * @param bean    * @return 【参数说明】    *     * @return Map<String,Object> 【返回类型说明】    * @exception throws 【违例类型】 【违例说明】    * @see 【类、类#方法、类#成员】     */    public static Map<String, Object> beanToMap(Object bean)    {        return beanToMap(bean, true, false, false);    }        /**     * map转换bean     *     * @param map    * @param clazz    * @return 【参数说明】    *     * @return T 【返回类型说明】    * @exception throws 【违例类型】 【违例说明】    * @see 【类、类#方法、类#成员】     */    public static <T> T mapToBean(Map<String, Object> map, Class<T> clazz)    {        T bean = null;        try        {            bean = clazz.newInstance();            Field[] fields = clazz.getDeclaredFields();//获取属性集合            //Method[] methods = clazz.getMethods();//获取所有方法            for (Field field : fields)            {                field.setAccessible(true);                String key = field.getName();                //排除序列化产生的serialVersionUID                if (!StringUtils.isEmpty(key) && EXCLUDE_UID.equals(key))                {                    continue;                }                                Object value = map.get(key);                field.set(bean, value);            }        }        catch (Exception e)        {            e.printStackTrace();            logger.error("map转换bean出错");        }        return bean;    }            public static void main(String[] args)    {            }    }

转载于:https://www.cnblogs.com/lovellll/p/10222457.html

你可能感兴趣的文章
FiddlerScript学习一:改动Request或Response
查看>>
linux下dd命令详解【转】
查看>>
JS及JQuery对Html内容编码,Html转义
查看>>
在java中如何在非servlet的普通类中获取request、response、session
查看>>
Linux Rsync
查看>>
Redis实现消息队列
查看>>
2k8 32bit下载
查看>>
密码需要带特殊字符
查看>>
个人收集的java精品网站
查看>>
springMVC的事务不回滚
查看>>
UPS电源和EPS电源的主要区别
查看>>
(转载)iPhone开发视频教程 Objective-C部分 (51课时)
查看>>
Unity 5.1+ Assertion Library (断言库)
查看>>
OracleLinux上安装数据库(DBCA)
查看>>
[LeetCode] Happy Number 快乐数
查看>>
12306-票
查看>>
LINQ的ORM功能中对使用sp_executesql语句的存储过程的支持
查看>>
springMvc 的参数验证 BindingResult result 的使用
查看>>
JQuery ztree 异步加载实践
查看>>
XOR算法的原理和实现
查看>>