1.背景
工作中经常会遇到一个map存key为string类型 value存object,方便我们下文代码获取数据
2.例如
Map<String, Object> result= new HashMap<>();
List<Map<String, Object>> sheet1Result = new ArrayList<>();
List<String> headMap = new ArrayList();
result.put("sheet1Result", sheet1Result);
result.put("sheet1ResultHeadMap", headMap);
上述这种情况就是,一个map存在多个类型
下文获取需要将object转为list
3.方法
//object转为Listpublic static <T> List<T> castList(Object obj, Class<T> clazz) {List<T> result = new ArrayList<T>();if (obj instanceof List<?>) {for (Object o : (List<?>) obj) {result.add(clazz.cast(o));}return result;}return null;}
//object转为Map<key,value>public static <K, V> List<Map<K, V>> castListMap(Object obj, Class<K> kCalzz, Class<V> vCalzz) {List<Map<K, V>> result = new ArrayList<>();if (obj instanceof List<?>) {for (Object mapObj : (List<?>) obj) {if (mapObj instanceof Map<?, ?>) {Map<K, V> map = new HashMap<>(16);for (Map.Entry<?, ?> entry : ((Map<?, ?>) mapObj).entrySet()) {map.put(kCalzz.cast(entry.getKey()), vCalzz.cast(entry.getValue()));}result.add(map);}}return result;}return null;}