参数是Class对象,如何使用泛型

luqing414 2017-04-08 08:22:31
我现在要对json进行解析,用到一个方法,参数是class对象,但是我想传入泛型,不知道该怎么写
List<TreeMap> list = JSON.parseArray(str, TreeMap.class);

这里TreeMap我想改成TreeMap<String, Object>,但是方法里如果直接这样写会报错
List<TreeMap<String, Object>> list = JSON.parseArray(str, TreeMap<String, Object>.class);

请问该如何写
...全文
316 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
李德胜1995 2017-04-08
  • 打赏
  • 举报
回复
Jackson做的,参考一下。。。

public class JacksonTest {
    private static ObjectMapper mapper=new ObjectMapper();
	public static void main(String[] args) throws Exception {
		TreeMap<String,Object> map=new TreeMap<String,Object>();
		map.put("西门庆", 32);map.put("潘金莲", 36);map.put("武大郎", 53);
		List<TreeMap<String, Object>> list=new ArrayList<TreeMap<String, Object>>();
		list.add(map);
		
		String str=mapper.writeValueAsString(list);
		System.out.println(str);
		JavaType javaType=getCollectionType(ArrayList.class,new TreeMap<String, Object>().getClass());
		List<TreeMap<String, Object>> newList=mapper.readValue(str, javaType);
		for (TreeMap<String, Object> treeMap : newList) {
			System.out.println(treeMap);
		}
	}
	 public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {   
		      return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);   
	}  
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧