Как я могу получить количество параметров типа, объявленных в классе? - PullRequest
0 голосов
/ 14 февраля 2019

Я хотел бы получить количество параметров типа, которое объявляет данный класс.Например, класс java.util.List объявляет один параметр типа.java.util.Map объявляет два.И java.util.function.BiFunction объявляет три.

В идеале, у меня был бы метод, который принимает объект Class и возвращает это количество.Что-то вроде

SomeUtility.getCountOfTypeParameters(java.util.List.class);

Примечание: меня не интересует тип arguments , предоставляемый при объявлении, например, переменной типа List<String>.

1 Ответ

0 голосов
/ 14 февраля 2019

Класс Class предоставляет метод getTypeParameters(), который

Возвращает массив TypeVariable объектов, представляющих переменные типа, объявленные обобщенным объявлением, представленнымэтот GenericDeclaration объект, в порядке объявления.Возвращает массив длины 0, если базовое обобщенное объявление не объявляет переменные типа.

Вы можете просто проверить длину возвращенного массива.

public static void main(String[] args) {
    Class<Map> clazz = Map.class;
    TypeVariable<Class<Map>>[] parameters = clazz.getTypeParameters();
    System.out.println(parameters.length);
}

print

2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...