是否可以创建一个方法来解析jsson的泛型集合?我上面的方法不起作用,因为在运行时gson在此处返回LinkedHasmaps的ArrayList,但是在编译时没有错误。
private <T> ArrayList<T> readArray(String json)
{
Gson gson = new Gson();
Type collType = new TypeToken<ArrayList<T>>() {
}.getType();
return gson.fromJson(json, collType);
}
我已经在这里查看过类似的问题:Using a generic type with Gson,但是我没有找到解决方案,这确实有效。
最佳答案
TypeToken东西要求您在编译时固定类型参数。像ArrayList<String>
之类的。 ArrayList<T>
将不起作用。
如果可以在运行时以某种方式传递T的类对象,那么可以尝试我在How do I build a Java type object at runtime from a generic type definition and runtime type parameters?中建议的解决方案