Создание экземпляра параметризированного класса с использованием рефлексии
Пишу свою реализацию DependencyInjection с использованием аннотаций и инициализацией сущностей с помощью рефлексии.
С помощью аннотаций получаю полное имя класса из properties и с помощью рефлексии создаю экземпляр необходимого класса, далее сетаю в необходимое поле.
Возникла проблема, необходимо получить экземпляр параметризированного класса, как пример ArrayList<>. Получаю класс, которым параметризированно поле "class java.lang.Integer" или для всего поля "java.util.ArrayList<java.lang.Integer>".
Как имея подобную информацию получить экземпляр необходимого класса и надо ли вообще в таком случае создавать параметризированный класс или использовать сырые типы. Если да, то подскажите пожалуйста реализацию))
Ответы (1 шт):
для создания экземпляра параметры типа уже не нужны; если Вы получаете класс через поле
field.getGenericType()
и это Class, то можно создавать
cls.newInstance()
примеры реализации: