我有这段代码:
Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);
它将一个JSON字符串转换为对象的List
。
但现在我希望拥有一个动态类型(不仅仅是myClass
)的ArrayList
,可以在运行时定义。
ArrayList
的元素类型将通过反射定义。
我尝试了这个:
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....}
TypeToken<ArrayList<T>>()
代码接受动态Arraylist类型。就像这样:TypeToken<ArrayList<Class.forName(MyClass)>>
。 - Amin Sh