具有动态ArrayList项目类型的GSON TypeToken我有个密码:Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);它将JSON字符串转换为List物体。但现在我想要这个ArrayList具有动态类型(不仅仅是myClass),在运行时定义。这个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....}
3 回答

慕田峪9158850
TA贡献1794条经验 获得超7个赞
TypeToken#getParameterized(Type rawType, Type... typeArguments)
TypeToken
getType()
TypeToken.getParameterized(ArrayList.class, myClass).getType()

慕神8447489
TA贡献1780条经验 获得超1个赞
new TypeToken<ArrayList<Class.forName(MyClass)>>
new TypeToken<ArrayList<T>>()
TypeToken
Class#getGenericSuperclass()
返回表示由该类表示的实体(类、接口、原始类型或空)的直接超类的类型。
如果超类是参数化类型,则返回的Type对象必须准确地反映源代码中使用的实际类型参数。
ArrayList<T>
ParameterizedType
T
Type
ParameterizedType
添加回答
举报
0/150
提交
取消