Получить фактический тип универсального набора символов подстановки во время выполнения

Дано:

public void methodOne() {
    List<RuntimeException> list = new ArrayList<RuntimeException>();
    methodTwo(list);
}

public void methodTwo(List<? extends Exception> list) {

}

Есть ли способ проверить фактический тип списка в methodTwo во время выполнения? Я знаю, что есть похожий вопрос Получить общий тип java.util.List, однако мой вопрос конкретно о подстановочных знаках.

Обратите внимание, что коллекция может быть пустой, поэтому проверка элементов может не работать.

Всего 1 ответ


Невозможно получить тип во время выполнения из-за стирания типа.

Тип не сохраняется и вместо этого преобразуется либо в объект для несвязанных параметров, либо в первый связанный класс для связанных параметров. Ссылка: Тип Erasure


Есть идеи?

10000