Получить фактический тип универсального набора шаблонов c во время выполнения - PullRequest
0 голосов
/ 25 марта 2020

Учитывая:

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

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

}

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

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

1 Ответ

0 голосов
/ 26 марта 2020

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

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

...