java将list<Map>转为list<Object>对象
package com.sport.sporttrailwalkadminserver.common.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.sport.sporttrailwalkadminserver.po.trailwalk.TrailActivityApplyExport; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.PropertyUtils; import org.apache.poi.ss.formula.functions.T; import org.springframework.util.StringUtils; import java.lang.reflect.Type; import java.util.Iterator; import java.util.List; import java.util.Map; public class ListUtil { /** * targetList 需要处理的list * targetClass 目标class * @return List 处理好的list */ public List listMapParseListObj(List targetList, Class targetClass){ // 先获取该类的代理对象 Object obj = null; try { obj = targetClass.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } // 将list转为list对象 for(int i = 0; i< targetList.size(); i++){ Map map = (Map)targetList.get(i); // 获取每个list里面每个map Iterator it = map.keySet().iterator(); while(it.hasNext()){ String name = it.next().toString(); // 名称 key String value = map.get(name).toString(); // 值 value try{ //取得值的类形 Class type = PropertyUtils.getPropertyType(obj, name); if(!StringUtils.isEmpty(type)){ PropertyUtils.setProperty(obj, name, ConvertUtils.convert(value, type)); } }catch(Exception ex){ ex.printStackTrace(); } } } // 将list<Map> 转为对象进行返回 List resListObj = Lists.newArrayList(); for (Object object : targetList) { JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(object)); resListObj.add(jsonObject.toJavaObject((Type)targetClass)); } //返回封装好的集合 return resListObj; } public static void main(String[] args) { // 获取所有列表信息 List<Map> allListMap = Lists.newArrayList(); for (int i = 0; i < 5; i++) { Map map = Maps.newHashMap(); map.put("name", "张三"+i); map.put("birthday", "2015-05-06"+i); allListMap.add(map); } ListUtil listUtil = new ListUtil(); List<TextExport> textExportList = listUtil.listMapParseListObj(allListMap, TextExport.class); System.out.println(textExportList.toString()); } }
结果: