• 将List集合中的map对象转为List<对象>形式--封装类


       import java.util.ArrayList;
        import java.util.HashMap;
        import java.util.Iterator;
        import java.util.List;
        import java.util.Map;
     
        import org.apache.commons.beanutils.ConvertUtils;
        import org.apache.commons.beanutils.PropertyUtils;
     
        public class EntityBean {
     
        /**
        * 此方法实现JDBCTemplate
        * 返回的Map集合对数据的自动
        * 封装功能
        * List集合存储着一系列的MAP
        * 对象,obj为一个javaBean
        * @param listMap集合
        * @param objjavaBean对象
        * @return
        */
            public List parse(List list,Class obj){
                   //生成集合
                   ArrayList ary = new ArrayList();
                   //遍历集合中的所有数据
                   for(int i = 0; i<list.size(); i++){
                    try {
                     ////生成对象实历 将MAP中的所有参数封装到对象中
                     Object o = this.addProperty( (Map)list.get(i),obj.newInstance() );
                     //把对象加入到集合中
                     ary.add(o);
                    } catch (InstantiationException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                    } catch (IllegalAccessException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
                    }
                   }
                   //返回封装好的集合
                   return list;
                }
     
     
     
        /**Map对象中的值为 name=aaa,value=bbb
        调用方法 
        addProperty(map,user);
        *将自动将map中的值赋给user类
        *此方法结合Spring框架的jdbcTemplete将非
        *常有用 
        * @param map存储着名称和值集合
        * @param obj要封装的对象
        * @return封装好的对象
        */
        public Object addProperty(Map map,Object obj){
           //遍历所有名称
           Iterator it = map.keySet().iterator();
           while(it.hasNext()){
            //取得名称
            String name = it.next().toString();
            //取得值
            String value = map.get(name).toString();
     
            try{
             //取得值的类形
             Class type = PropertyUtils.getPropertyType(obj, name);
     
             if(type!=null){
              //设置参数
              PropertyUtils.setProperty(obj, name,ConvertUtils.convert(value, type));
     
             }
            }catch(Exception ex){
             ex.printStackTrace();
            }
     
           }
           return obj;
     
        }
     
        }
     
    //使用方法
    List stuGroupList2=new ArrayList();
    EntityBean entbean=new EntityBean();
    for (DynaBean stubean : stuGroupList) {
        if (stubean.get("GROUP_ID") != null&& stubean.get("GROUP_ID").equals(group_id)) {
            LinkedHashMap map=new LinkedHashMap();
            map.put("choose_id", stubean.get("CHOOSE_ID"));
            map.put("group_user_typecode", stubean.get("GROUP_USER_TYPECODE"));
            map.put("group_id", stubean.get("GROUP_ID"));
            map.put("realname", stubean.get("REALNAME"));
            stuGroupList2.add(map);
        }
    }
    stuGroupList2=entbean.parse(stuGroupList2, stuGroup.class);
     
     
     
  • 相关阅读:
    windows 安装 make
    go lang AES 加密
    Microsoft .NET Framework 5.0
    Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解
    ElasticSearch实战系列九: ELK日志系统介绍和安装
    1024快乐,加班使我快乐,福报如圣光醍醐灌顶!
    react-redux笔记
    (转)Vuex、Flux、Redux、Redux-saga、Dva、MobX
    React笔记
    SQLServer设置客户端使用IP地址登录
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/7467058.html
Copyright © 2020-2023  润新知