Как установить тип ArrayList динамически, используя имя класса? - PullRequest
0 голосов
/ 25 июня 2018

Используя библиотеку Gson, я преобразую строку JSON в объект ArrayList с помощью следующего кода:

posts = gson.fromJson(json, new TypeToken<List<Post>>(){}.getType());

и использую следующий код для преобразования json в класс objec:

obj = gson.fromJson(json, Class.forName(fullClassName));

Вы видите во втором коде, что я использовал отражение, чтобы указать тип класса;но для первого кода я не знаю, как указать тип списка с помощью отражения.

Что мне делать?!

1 Ответ

0 голосов
/ 26 июня 2018

Итак, насколько я понимаю, вам нужно десериализовать список объектов, но тип не известен во время компиляции, но вы предоставляете его динамически?
Вы, вероятно, хотите использовать что-то подобное для своего типа:

TypeToken.getParameterized(List.class, Class.forName("foo.bar.MyDynamicType"))

Это создаст тот же тип, что и

new TypeToken<List<MyDynamicType>>(){}.getType()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...