java - 如何使用类名动态设置 ArrayList 类型?

标签 java reflection gson

使用 Gson 库,我通过以下代码将 JSON 字符串转换为 ArrayList 对象:

posts = gson.fromJson(json, new TypeToken<List<Post>>(){}.getType());

我使用以下代码将 json 转换为类对象:

obj = gson.fromJson(json, Class.forName(fullClassName));

你在第二个代码中看到我使用反射来指定类的类型; 但是对于第一个代码,我不知道如何使用反射来指定列表的类型。

我该怎么办?!

最佳答案

所以,据我了解,您需要反序列化对象列表,但类型在编译时未知,但您是动态提供的?
你可能想为你的类型使用类似的东西:

TypeToken.getParameterized(List.class, Class.forName("foo.bar.MyDynamicType"))

这将创建与

相同的类型
new TypeToken<List<MyDynamicType>>(){}.getType()

关于java - 如何使用类名动态设置 ArrayList 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51014285/

相关文章:

java - 从 JAR 运行时编码错误,从 Eclipse 完美运行

java - 使用Gson解析Json中的数组

java.lang.NoSuchMethodError : org. hibernate.SessionFactory.openSession()Lorg/hibernate/classic/Session

c# - Assembly.CreateInstance 返回 null,即使我可以在 DefinedTypes 中看到该类

java - 如何在自定义 ClassLoader 中处理类 [B

ios - 从泛型方法接收参数

java - 使用 Gson 解析 JSON

java - 在 JRuby 中抛出 Java 异常并在 Java 中捕获它

Java SSH MySQL 连接

java - Java "Pass by reference"是否不适用于集合中存在的元素