zoukankan      html  css  js  c++  java
  • 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);
                    }
             }
            }
            
        
        }
  • 相关阅读:
    理解闭包Closure
    理解商集
    理解格
    理解距(数学)
    微积分英文词汇,高数名词中英文对照,高等数学术语英语翻译一览
    对Extjs中store的多种操作
    mysql中的除法取整
    【python】用asq实现count(distinct cln)
    Timer 和TimerTask的使用
    使用vim.rc配置vim
  • 原文地址:https://www.cnblogs.com/lianwen/p/7096734.html
Copyright © 2011-2022 走看看