具有動態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條經驗 獲得超8個贊
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
提交
取消