• JavaBean和Map转换封装类


    复制代码

    package com.ljq.util;
    
    import java.beans.BeanInfo;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.lang.reflect.Method;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    
    /**
     * Map工具类
     *
     * @author jqlin
     */
    public class MapUtils {
    
        /**
         * 从map集合中获取属性值
         * 
         * @param <E>
         * @param map
         *            map集合
         * @param key
         *            键对
         * @param defaultValue
         *            默认值
         * @return
         * @author jiqinlin
         */
        @SuppressWarnings({ "unchecked", "rawtypes" })
        public final static <E> E get(Map map, Object key, E defaultValue) {
            Object o = map.get(key);
            if (o == null)
                return defaultValue;
            return (E) o;
        }
        
        /**
         * Map集合对象转化成 JavaBean集合对象
         * 
         * @param javaBean JavaBean实例对象
         * @param mapList Map数据集对象
         * @return
         * @author jqlin
         */
        @SuppressWarnings({ "rawtypes" })
        public static <T> List<T> map2Java(T javaBean, List<Map> mapList) {
            if(mapList == null || mapList.isEmpty()){
                return null;
            }
            List<T> objectList = new ArrayList<T>();
            
            T object = null;
            for(Map map : mapList){
                if(map != null){
                    object = map2Java(javaBean, map);
                    objectList.add(object);
                }
            }
            
            return objectList;
            
        }
        
        /**
         * Map对象转化成 JavaBean对象
         * 
         * @param javaBean JavaBean实例对象
         * @param map Map对象
         * @return
         * @author jqlin
         */
        @SuppressWarnings({ "rawtypes","unchecked", "hiding" })
        public static <T> T map2Java(T javaBean, Map map) {
            try {
                // 获取javaBean属性
                BeanInfo beanInfo = Introspector.getBeanInfo(javaBean.getClass());
                // 创建 JavaBean 对象
                Object obj = javaBean.getClass().newInstance();
    
                PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
                if (propertyDescriptors != null && propertyDescriptors.length > 0) {
                    String propertyName = null; // javaBean属性名
                    Object propertyValue = null; // javaBean属性值
                    for (PropertyDescriptor pd : propertyDescriptors) {
                        propertyName = pd.getName();
                        if (map.containsKey(propertyName)) {
                            propertyValue = map.get(propertyName);
                            pd.getWriteMethod().invoke(obj, new Object[] { propertyValue });
                        }
                    }
                    return (T) obj;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return null;
        }
    
        /**
         * JavaBean对象转化成Map对象
         * 
         * @param javaBean
         * @return
         * @author jqlin
         */
        @SuppressWarnings({ "rawtypes", "unchecked" })
        public static Map java2Map(Object javaBean) {
            Map map = new HashMap();
             
            try {
                // 获取javaBean属性
                BeanInfo beanInfo = Introspector.getBeanInfo(javaBean.getClass());
    
                PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
                if (propertyDescriptors != null && propertyDescriptors.length > 0) {
                    String propertyName = null; // javaBean属性名
                    Object propertyValue = null; // javaBean属性值
                    for (PropertyDescriptor pd : propertyDescriptors) {
                        propertyName = pd.getName();
                        if (!propertyName.equals("class")) {
                            Method readMethod = pd.getReadMethod();
                            propertyValue = readMethod.invoke(javaBean, new Object[0]);
                            map.put(propertyName, propertyValue);
                        }
                    }
                }
                
            } catch (Exception e) {
                e.printStackTrace();
            }  
            
            return map;
        }
     
    }
    复制代码
  • 相关阅读:
    HDU4004The Frog's Games(二分求恰当的步长)
    HDU2899Strange fuction (二分)
    HDU4190Distributing Ballot Boxes
    HDU2059龟兔赛跑(加油站)
    HDU2594 Simpsons’ Hidden Talents (kmp找寻两串s1,s2中相同的部分)
    HDU1711Number Sequence (kmp找母串ns[]中子串ms[]第一次出现时,首位的位置)
    HDU1874畅通工程续(最短路模版)
    HDU3790最短路径问题
    1655 文本计算器
    具有相同元素的排列组合模板
  • 原文地址:https://www.cnblogs.com/fuhengheng/p/7992542.html
Copyright © 2020-2023  润新知