如何调用参数为Class <object>和Class <map>的方法

时间:2015-12-22 04:46:00

标签: java json class generics

我需要调用一个方法,它只是用来反序列化一个json字符串,函数是这样的:

NSDecimalNumber

从它的外观来看,我知道这意味着这个json字符串可以被反序列化为 public <V extends Map<String,List<M>>,M> Object deserializeMap(String json, Class<Map> class1, Class<List> class2) Map而且,我知道,这个List<Object>表示每个json项目是一个名为Object的类,但如何构建这两个参数只会让我困惑。任何人都可以帮助我?

1 个答案:

答案 0 :(得分:0)

根据方法签名和你的解释,我猜你应该传递具体的类,这些类将用于实例化生成的MapList。在这种情况下,方法签名看起来很奇怪。请注意,根本不使用泛型参数。如果您可以更改方法签名,可能最好像这样定义它:

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

并像这样使用:

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