Тип Java как аргумент для GSON
В GSON, чтобы получить список объектов, которые вы делаете
Gson gson = new Gson();
Type token = new TypeToken<List<MyType>>(){}.getType();
return gson.fromJson(json, token);
Это прекрасно работает, но я хочу пойти дальше и параметризовать MyType, чтобы у меня была общая функция для анализа списка объектов с этим кодом
// the common function
public <T> List<T> fromJSonList(String json, Class<T> type) {
Gson gson = new Gson();
Type collectionType = new TypeToken<List<T>>(){}.getType();
return gson.fromJson(json, collectionType);
}
// the call
List<MyType> myTypes = parser.fromJSonList(jsonString, MyType.class);
К сожалению, возвращает массив StringMaps, а не тип. T интерпретируется как еще один общий тип, а не мой тип. Любое решение?