Я использую Java 7. При попытке извлечь фактические общие параметры производного класса, я использую следующий код:Java получить фактические общие параметры
Class<E> cls = (Class<E>) ((ParameterizedType)
getClass().getGenericSuperclass())
.getActualTypeArguments()[0];
Это, как правило, работает хорошо, но если у меня есть случай множественного наследования (C расширяет B расширяет A), а B также является абстрактным (еще не объявляющим фактические общие параметры). Я рекурсивно получаю класс перед базовым (B) и использую этот метод в B (вместо getClass()) [поскольку, если бы я использовал его на C, его суперкласс не был параметризованным типом], а фактические аргументы типа показывают мне общие типы (я получаю T для использования этого).
Если кто-нибудь столкнулся с этим, я был бы признателен за любую помощь или рекомендации.
Почему вы пытаетесь извлечь фактические общие параметры производного класса? – immibis
Обратите внимание, что 'C extends B extends A' не является множественным наследованием, которое является 'C extends B и A' – Thirler
Да, это не множественное наследование (которое не существует в java 7), поэтому я добавил объяснение в скобках , Весь мой случай - это базовый класс, из которого производятся многие классы. Я хочу сделать действие с фактическим общим во всех этих классах .. но некоторые классы не производятся непосредственно из этого класса (есть этот класс B в середине) в этом случае извлечение фактического параметра возвращает Т вместо фактических параметров. – user3476452