2015-12-22 62 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);