如何将类类型传递给Gson的方法

时间:2015-11-04 19:58:51

标签: java

所有

我想将类类型作为变量传入,并使用它来参数化列表。例如,我的方法如下:

public void index(String url, Class clazz) {
    Gson gson = new Gson();
    Type listType = new TypeToken<List<clazz>>(){}.getType();
    gson.fromJson(response.body().toString(), listType);
}

这甚至可能吗?请注意,在这种情况下,我无法使用泛型。

1 个答案:

答案 0 :(得分:2)

Class是原始类型。将它与泛型方法中定义的类型参数一起使用,并使用该类型参数:

public <T> void index(String url, Class<T> clazz) {
    Gson gson = new Gson();
    Type listType = new TypeToken<List<T>>(){}.getType();
    gson.fromJson(response.body().toString(), listType);
}