Вопрос проверяет понимание механизма generics и ограничений Java на этапе runtime.
Нет, информация о generic-типах в основном не сохраняется во время выполнения.
Во время компиляции происходит стирание типов.
В runtime JVM работает с «сырыми» типами.
Некоторая информация может быть доступна через reflection.
Это накладывает ограничения на использование generics.
Поведение generics в Java определяется компромиссами дизайна языка.
Generics — это механизм параметризации типов, работающий в основном на этапе компиляции.
Компилятор:
проверяет типобезопасность
удаляет информацию о параметрах типов
заменяет generics на базовые типы
Пример:
List<String> list = new ArrayList<>();
В runtime это выглядит как:
List list = new ArrayList();
Частично информация может быть получена:
из сигнатур полей
из параметров методов
через ParameterizedType
Но:
для объектов информация о типе параметра недоступна
нельзя создать new T()
нельзя сделать instanceof List<String>
нельзя создать массив generic-типа
Generics в Java — это механизм compile-time типобезопасности, а не runtime-полиморфизма.