zoukankan      html  css  js  c++  java
  • javaBean与map的相互转换

    1、通过json工具先将bean转换为json,再将json转换为map,这种方式效率很低,不推荐

    2、通过java反射,获取bean类的属性和值,再转换到map对应的键值对中,这种方法次之,但稍微有点麻烦,不推荐

    3、通过net.sf.cglib.beans.BeanMap类中的方法,这种方式效率极高,该方式利用Java反射和缓存,初次创建bean时需要初始化,之后就使用缓存,所以速度极快。

    mport java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
    import net.sf.cglib.beans.BeanMap;
     
    public class BeanMapUtils {
    	/**
    	 * 将对象装换为map
    	 * 
    	 * @param bean
    	 * @return
    	 */
    	public static <T> Map<String, Object> beanToMap(T bean) {
    		Map<String, Object> map = new HashMap<>();
    		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
    	 */
    	public static <T> List<Map<String, Object>> objectsToMaps(List<T> objList) {
    		List<Map<String, Object>> list = new ArrayList<>();
    		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 = new ArrayList<>();
    		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;
    	}
    }
    
  • 相关阅读:
    MongoDB面试题
    spider 爬虫文件基本参数(3)
    命令行工具(2)
    初始scrapy,简单项目创建和CSS选择器,xpath选择器(1)
    数据分析实例(离海洋距离与最高温度之间的关系分析)
    路飞业务分析
    MYSQL 主从复制,读写分离(8)
    pyquery 学习
    selenium case报错重新执行
    python小技巧
  • 原文地址:https://www.cnblogs.com/wangjintao-0623/p/12697710.html
Copyright © 2011-2022 走看看