• 利用Java反射机制将Bean转成Map


    import java.lang.reflect.Field;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.LinkedHashMap;
    import java.util.Map;
    
    public class BeanUtil {
        
        /**Description: 利用Java反射机制将Bean转成Map
         * Create Date: 2014年11月4日上午11:48:26<br/>
         * Author     : cyy <br/>
         * Modify Date: <br/>
         * Modify By  : <br/>
         * @param obj
         * @return
         */
        public static Map<String,Object> transBean2Map(Object obj){  
            Map<String,Object> map = new LinkedHashMap<String,Object>();  
            //key值 应该是 obj类中的属性名,利用反射机制  
            Field[] fields = obj.getClass().getDeclaredFields();  
            for(int i=0; i<fields.length; i++){  
                String field = fields[i].toString();  
                String[] keys = field.split("\.");  
                String key = keys[keys.length-1];  
                char toUpperCase = (char)(key.charAt(0)-32);  
                String keyUpper = key.replaceFirst(new String(new char[]{key.charAt(0)}) ,new String(new char[]{toUpperCase}) );//key.replace(key.charAt(0),toUpperCase);  
                Method getMethod;  
                try {  
                    getMethod = obj.getClass().getDeclaredMethod("get"+keyUpper);//根据 field得到对应的get方法  
                    Object value = getMethod.invoke(obj);  
                    map.put(key, value);  
                } catch (NoSuchMethodException e) {  
                    e.printStackTrace();  
                } catch (SecurityException e) {  
                    e.printStackTrace();  
                }catch (IllegalAccessException e) {  
                    e.printStackTrace();  
                } catch (IllegalArgumentException e) {  
                    e.printStackTrace();  
                } catch (InvocationTargetException e) {  
                    e.printStackTrace();  
                }         
            }  
            return map;  
        } 
    }
  • 相关阅读:
    Django框架之第三篇模板语法
    Django框架之第二篇
    Django框架第一篇基础
    【数学基础】【快速幂运算模板】
    【搜索】【广搜模板】
    【动态规划】【子序列模板】
    [置顶] 【ACM模板】——hello_chengdongni 随着姿势提升,不定期补充
    【搜索入门专题1】 hdu1242 J
    【搜索入门专题1】E
    【搜索入门专题1】hdu1253 【BFS】 F
  • 原文地址:https://www.cnblogs.com/yy123/p/5169194.html
Copyright © 2020-2023  润新知