2015-12-22 63 views
0

我需要调用一个方法,它只是用来反序列化JSON字符串,功能就像这样一个方法:如何调用它的参数是一个类<Object>和Class <Map>

public <V extends Map<String,List<M>>,M> Object deserializeMap(String json, Class<Map> class1, Class<List> class2) 

从它外观,我知道这意味着这个json字符串可以被反序列化为MapList<Object>,我也知道,这个代表每个json项目的Object是一个名为MessageObj的类,但是如何构造这两个参数只是让我困惑。有人可以帮助我吗?

+0

为什么你不能把它像'deserializeMap(urJsonString,地图。类,List.class)'? –

回答

0

根据方法签名和你的解释,我猜你应该通过具体的类来实例化结果MapList。在这种情况下,方法签名看起来很奇怪。请注意,通用参数完全不用。如果你可以改变方法签名,可能最好还是把它定义是这样的:

public Object deserializeMap(String json, Class<? extends Map> class1, 
          Class<? extends List> class2) { 
    ... 
} 

而且使用这样的:

deserializeMap(jsonString, HashMap.class, ArrayList.class);