Создание параметризованного типа Java на лету

#java #generics #reflection

#java #обобщения #отражение

Вопрос:

Как создать java.lang.reflect.Type тип List<T> «на лету», если я знаю, что T имеет определенный тип, такой как String.class или Integer.class ?

Комментарии:

1. Для чего вам это нужно?

2. Хм, возможно, я неправильно понял ваш вопрос. Вы хотели List , Type List экземпляра или действительно создать ( new ) Type экземпляр?

Ответ №1:

Параметризованные типы Java подвержены стиранию типов, так что универсальные типы теряются во время выполнения. Это означает, что во время выполнения a List<String> неотличим от a List<Integer> или a List<Object> без проверки элементов в списке.

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

Комментарии:

1. На самом деле это не дает ответа на вопрос.