• java bean 转换为map


    为了考虑代码的兼容性,有时候需要将对象进行格式化.下面做一个最常用的对象格式进行转换,将对象apple转换为map

    不说多话,用代码交流.

    public class BeanToMap {
            /**
             * 将bean转化为map 如果本身为map则不需要转换了
             * 考虑兼容性 
             * @param List<Object>
             * @return
             */public static  List<Map> changeBean2MapList(List<?> list){
                List<Map> returnList = new ArrayList<Map>();
                try {
                    if(null != list && list.size() >0 ){
                        for(Object obj:list){
                            if(obj instanceof Map){
                                returnList.add((Map)obj);
                            }else{
                                Class clazz = obj.getClass();//获取类型类,这是反射机制,得到的是一个对象是什么类型
                                Field[] fields = clazz.getDeclaredFields();//获取类所有声明的字段,不包含父类中的字段
                                Map returnMap = new HashMap();
                                
                                for(Field field:fields){
                                    field.setAccessible(true);//反射方法, 在类声明的外部获取private变量的value需要这个设置,否则会有异常
                                    String key = field.getName();
                                    Object value = field.get(obj);
                                    returnMap.put(key, value);
                                }
                                returnList.add(returnMap);
                                obj = null;
                            }
                        }
                    }
                    list.clear();//将list置为null不会清除记录,只有clear
                    return returnList;
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return returnList;
            }
            
            public static void main(String[] args) {
                List<Apple> list = new ArrayList<Apple>();
                Apple a = new Apple();
                a.setColor("red");
                a.setPrice("11");
                Apple a1 = new Apple();
                a1.setColor("blue");
                a1.setPrice("12");
                list.add(a);
                list.add(a1);
                List<Map> listMap = new ArrayList<Map>();
                listMap = BeanToMap.changeBean2MapList(list);
                for(int i = 0; i<listMap.size(); i++){
                    for(Object obj : listMap.get(1).keySet()){
                        System.out.println(obj);
                    }
             }
            }
            
        
        }
  • 相关阅读:
    转载viewstate(一) 太经典的东西 不得不转载保存下来
    Asp.Net中HttpModule的研究(转)
    linux学习笔记(9)
    老手经验谈:Linux驱动程序开发学习步骤(转)
    浅谈C中的malloc和free(1)
    ASP.NET的HttpModule和HttpHandler(转)
    C语言学习笔记(1)
    xcode 4 code sense
    不是bug 是教训
    win7 管理员 开关命令
  • 原文地址:https://www.cnblogs.com/lianwen/p/7096734.html
Copyright © 2020-2023  润新知