Создание экземпляра параметризированного класса с использованием рефлексии

Пишу свою реализацию DependencyInjection с использованием аннотаций и инициализацией сущностей с помощью рефлексии.

С помощью аннотаций получаю полное имя класса из properties и с помощью рефлексии создаю экземпляр необходимого класса, далее сетаю в необходимое поле.

Возникла проблема, необходимо получить экземпляр параметризированного класса, как пример ArrayList<>. Получаю класс, которым параметризированно поле "class java.lang.Integer" или для всего поля "java.util.ArrayList<java.lang.Integer>".

Как имея подобную информацию получить экземпляр необходимого класса и надо ли вообще в таком случае создавать параметризированный класс или использовать сырые типы. Если да, то подскажите пожалуйста реализацию))


Ответы (1 шт):

Автор решения: Ramiz

для создания экземпляра параметры типа уже не нужны; если Вы получаете класс через поле

field.getGenericType()

и это Class, то можно создавать

cls.newInstance()

примеры реализации:

→ Ссылка