РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
102 of 1163 menu

Метод getTypeParameters

Метод getTypeParameters класса Class возвращает массив объектов TypeVariable, которые описывают параметры типа (type parameters), объявленные в обобщённом классе, интерфейсе или методе. Если у класса нет параметров типа, метод возвращает пустой массив. Параметров у метода нет.

Каждый элемент массива TypeVariable содержит информацию об имени параметра типа (например, T или E) и его границах (bounds). Порядок элементов соответствует порядку объявления параметров типа в исходном коде.

Синтаксис

class.getTypeParameters()

Пример

Давайте получим параметры типа обобщённого класса Box с двумя параметрами типа и выведем их имена:

import java.lang.reflect.TypeVariable; public class Main { public static void main(String[] args) { Class<Box> cls = Box.class; TypeVariable<Class<Box>>[] params = cls.getTypeParameters(); for (TypeVariable<Class<Box>> param : params) { System.out.println(param.getName()); } } } class Box<T, E> { }

Результат выполнения кода:

"T" "E"

Пример

Давайте проверим, что у обычного класса без параметров типа метод возвращает пустой массив:

import java.lang.reflect.TypeVariable; public class Main { public static void main(String[] args) { Class<String> cls = String.class; TypeVariable<Class<String>>[] params = cls.getTypeParameters(); System.out.println(params.length); } }

Результат выполнения кода:

0

Пример

Давайте получим параметры типа обобщённого класса и выведем их границы через метод getBounds:

import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; public class Main { public static void main(String[] args) { Class<Box> cls = Box.class; TypeVariable<Class<Box>>[] params = cls.getTypeParameters(); for (TypeVariable<Class<Box>> param : params) { Type[] bounds = param.getBounds(); System.out.println(param.getName() + ": " + bounds[0].getTypeName()); } } } class Box<T extends Number, E> { }

Результат выполнения кода:

"T: java.lang.Number" "E: java.lang.Object"

Смотрите также

  • класс Class,
    который представляет классы во время выполнения
  • метод getName,
    который возвращает полное имя класса
  • метод getSimpleName,
    который возвращает простое имя класса
  • метод isAssignableFrom,
    который проверяет совместимость типов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить