具有動態(tài)ArrayList項目類型的GSON TypeToken我有個密碼:Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);它將JSON字符串轉(zhuǎn)換為List物體。但現(xiàn)在我想要這個ArrayList具有動態(tài)類型(不僅僅是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貢獻(xiàn)1794條經(jīng)驗 獲得超7個贊
TypeToken#getParameterized(Type rawType, Type... typeArguments)
TypeToken
getType()
TypeToken.getParameterized(ArrayList.class, myClass).getType()

慕神8447489
TA貢獻(xiàn)1780條經(jīng)驗 獲得超1個贊
new TypeToken<ArrayList<Class.forName(MyClass)>>
new TypeToken<ArrayList<T>>()
TypeToken
Class#getGenericSuperclass()
返回表示由該類表示的實體(類、接口、原始類型或空)的直接超類的類型。
如果超類是參數(shù)化類型,則返回的Type對象必須準(zhǔn)確地反映源代碼中使用的實際類型參數(shù)。
ArrayList<T>
ParameterizedType
T
Type
ParameterizedType
添加回答
舉報
0/150
提交
取消