【发布时间】:2014-01-13 11:04:03
【问题描述】:
我有这个代码:
Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);
它将 JSON 字符串转换为 List 的对象。
但是现在我想要这个ArrayList 具有动态类型(不仅仅是myClass),在运行时定义。
ArrayList 的项目类型将使用 reflection 定义。
我试过了:
private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
Type typeOfObjectsListNew = new TypeToken<ArrayList<T>>() {}.getType();
return typeOfObjectsListNew;
}
但它不起作用。这是一个例外:
java.sql.SQLException: Fail to convert to internal representation: {....my json....}
【问题讨论】:
-
这是一个 SQLException。它与您发布的代码无关。向我们展示 JDBC 代码。
-
@SotiriosDelimanolis 不是!我只想让
TypeToken<ArrayList<T>>()代码接受动态 Arraylist 类型。像这样的东西:TypeToken<ArrayList<Class.forName(MyClass)>>
标签: java reflection arraylist gson