是否可以创建一个方法来解析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?中建议的解决方案

10-08 02:53