我的情景:
我得到一个jsonArray,我想将这个jsonArray转换为所需类型的List;即List<Integer>
,List<String>
等。
假设我有以下方法:
public static List jsonArrayToJavaList(JsonArray jsonArray, TYPE TYPE) {
return new Gson().fromJson(jsonArray, new TypeToken<List<TYPE>>() {}.getType());
}
如何传递TYPE
?
我想这样做,因为这个方法可以被其他人使用,我不想为我想要的每种类型的列表复制这个代码......
我也尝试过:
public static List jsonArrayToJavaList(JsonArray jsonArray, final Class c) {
return new Gson().fromJson(jsonArray, new TypeToken<List<c>>() {}.getType());
}
我看到错误说未知类c。
答案 0 :(得分:0)
Java尚未提供表示泛型类型的官方方式。如javadoc中所述,提供了TypeToken以便能够表示这些类型。因此,简单的解决方案是将其用作jsonArrayToJavaList方法的参数。然而,它只是对fromJson的调用的间接。