Класс Class<T>

Параметры типа:
T — тип класса, моделируемого этим объектом Class. Например, тип объекта String.class — это Class<String>. Используйте Class<?>, если моделируемый класс неизвестен.
Все реализуемые интерфейсы:
Serializable, AnnotatedElement, GenericDeclaration, Type
public final class Class<T>
extends Object
implements Serializable, GenericDeclaration, Type, AnnotatedElement

Объекты класса Class представляют классы и интерфейсы в работающей Java-приложении. Тип перечисления — это вид класса, а тип аннотации — вид интерфейса. Каждый массив также принадлежит классу, который отражается как объект Class, который используется всеми массивами с одинаковым типом элементов и числом измерений. Примитивные типы Java (boolean, byte, char, short, int, long, float и double), а также ключевое слово void также представлены как объекты Class.

Класс Class не имеет публичного конструктора. Вместо этого объект Class автоматически создается виртуальной машиной Java, когда загрузчик классов вызывает один из методов defineClass и передает байты файла class.

Методы класса Class раскрывают многие характеристики класса или интерфейса. Большинство характеристик получены из файла class, переданного загрузчиком классов виртуальной машине Java. Некоторые характеристики определяются средой загрузки классов во время выполнения, такие как модуль, возвращаемый методом getModule().

Некоторые методы класса Class раскрывают, была ли декларация класса или интерфейса в коде Java вложена в другую декларацию. Другие методы описывают, как класс или интерфейс расположен в гнезде. Гнездо — это набор классов и интерфейсов в одной среде выполнения, которые позволяют им взаимно обращаться к своим private членам. Классы и интерфейсы известны как члены гнезда. Один член гнезда выступает в роли хозяина гнезда и перечисляет других членов гнезда; каждый из них, в свою очередь, записывает себя как хозяина гнезда. Классы и интерфейсы, которые принадлежат гнезду, включая его хозяина, определяются при генерации файлов class, например, компилятор Java обычно записывает класс верхнего уровня как хозяина гнезда, где другими членами являются классы и интерфейсы, чьи декларации вложены в декларацию класса верхнего уровня.

Следующий пример использует объект Class для вывода имени класса объекта:

void printClassName(Object obj) {
    System.out.println("The class of " + obj +
                       " is " + obj.getClass().getName());
}

Также можно получить объект Class для именованного типа (или для void) с помощью литерала класса. Смотрите раздел 15.8.2 спецификации языка Java™. Например:

System.out.println("The name of class Foo is: "+Foo.class.getName());
С:
1.0
См. также:
ClassLoader.defineClass(byte[], int, int), Сериализованная форма

Методы

Модификатор и тип Метод Описание
<U> Class<? extends U> asSubclass​(Class<U> clazz)

Преобразует этот объект Class для представления подкласса класса, представленного указанным объектом класса.

T cast​(Object obj)

Преобразует объект в класс или интерфейс, представленный этим объектом Class.

boolean desiredAssertionStatus()

Возвращает состояние проверки, которое было бы присвоено этому классу, если бы он был инициализирован в момент вызова этого метода.

static Class<?> forName​(Module module, String name)

Возвращает Class с заданным бинарным именем в заданном модуле.

static Class<?> forName​(String className)

Возвращает объект Class, связанный с классом или интерфейсом с заданным строковым именем.

static Class<?> forName​(String name, boolean initialize, ClassLoader loader)

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

AnnotatedType[] getAnnotatedInterfaces()

Возвращает массив объектов AnnotatedType, которые представляют использование типов для указания суперинтерфейсов сущности, представленной этим объектом Class.

AnnotatedType getAnnotatedSuperclass()

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

<A extends Annotation>
A
getAnnotation​(Class<A> annotationClass)

Возвращает аннотацию этого элемента для указанного типа, если такая аннотация присутствует, в противном случае null.

Annotation[] getAnnotations()

Возвращает аннотации, которые присутствуют на этом элементе.

<A extends Annotation>
A[]
getAnnotationsByType​(Class<A> annotationClass)

Возвращает аннотации, которые связаны с этим элементом.

String getCanonicalName()

Возвращает каноническое имя базового класса, определенное спецификацией языка Java.

Class<?>[] getClasses()

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

ClassLoader getClassLoader()

Возвращает загрузчик классов для класса.

Class<?> getComponentType()

Возвращает Class, представляющий тип компонента массива.

Constructor<T> getConstructor​(Class<?>... parameterTypes)

Возвращает объект Constructor, отражающий указанный публичный конструктор класса, представленного этим объектом Class.

Constructor<?>[] getConstructors()

Возвращает массив объектов Constructor, отражающих все публичные конструкторы класса, представленного этим объектом Class.

<A extends Annotation>
A
getDeclaredAnnotation​(Class<A> annotationClass)

Возвращает аннотацию этого элемента для указанного типа, если такая аннотация непосредственно присутствует, в противном случае null.

Annotation[] getDeclaredAnnotations()

Возвращает аннотации, которые непосредственно присутствуют на этом элементе.

<A extends Annotation>
A[]
getDeclaredAnnotationsByType​(Class<A> annotationClass)

Возвращает аннотации этого элемента для указанного типа, если такие аннотации либо непосредственно присутствуют, либо косвенно присутствуют.

Class<?>[] getDeclaredClasses()

Возвращает массив объектов Class, отражающих все классы и интерфейсы, объявленные в качестве членов класса, представленного этим объектом Class.

Constructor<T> getDeclaredConstructor​(Class<?>... parameterTypes)

Возвращает объект Constructor, отражающий указанный конструктор класса или интерфейса, представленного этим объектом Class.

Constructor<?>[] getDeclaredConstructors()

Возвращает массив объектов Constructor, отражающих все конструкторы, объявленные классом, представленным этим объектом Class.

Field getDeclaredField​(String name)

Возвращает объект Field, отражающий указанное объявленное поле класса или интерфейса, представленного этим объектом Class.

Field[] getDeclaredFields()

Возвращает массив объектов Field, отражающих все объявленные поля класса или интерфейса, представленного этим объектом Class.

Method getDeclaredMethod​(String name, Class<?>... parameterTypes)

Возвращает объект Method, отражающий указанный объявленный метод класса или интерфейса, представленного этим объектом Class.

Method[] getDeclaredMethods()

Возвращает массив объектов Method, отражающих все объявленные методы класса или интерфейса, представленного этим объектом Class, включая публичные, защищенные, по умолчанию (пакетные) и приватные методы, но исключая унаследованные методы.

Class<?> getDeclaringClass()

Если класс или интерфейс, представленный этим объектом Class, является членом другого класса, возвращает объект Class, представляющий класс, в котором он был объявлен.

Class<?> getEnclosingClass()

Возвращает непосредственно содержащий класс базового класса.

Constructor<?> getEnclosingConstructor()

Если этот объект Class представляет локальный или анонимный класс внутри конструктора, возвращает объект Constructor, представляющий непосредственно содержащий конструктор базового класса.

Method getEnclosingMethod()

Если этот объект Class представляет локальный или анонимный класс внутри метода, возвращает объект Method, представляющий непосредственно содержащий метод базового класса.

T[] getEnumConstants()

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

Field getField​(String name)

Возвращает объект Field, отражающий указанное публичное поле члена класса или интерфейса, представленного этим объектом Class.

Field[] getFields()

Возвращает массив объектов Field, отражающих все доступные публичные поля класса или интерфейса, представленного этим объектом Class.

Type[] getGenericInterfaces()

Возвращает Type, представляющие интерфейсы, непосредственно реализуемые классом или интерфейсом, представленным этим объектом.

Type getGenericSuperclass()

Возвращает Type, представляющий непосредственный суперкласс сущности (класс, интерфейс, примитивный тип или void), представленной этим объектом Class.

Class<?>[] getInterfaces()

Возвращает интерфейсы, непосредственно реализованные классом или интерфейсом, представленным этим объектом.

Method getMethod​(String name, Class<?>... parameterTypes)

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

Method[] getMethods()

Возвращает массив объектов Method, отражающих все публичные методы класса или интерфейса, представленного этим объектом Class, включая те, которые объявлены классом или интерфейсом, и те, которые унаследованы от суперклассов и суперинтерфейсов.

int getModifiers()

Возвращает модификаторы языка Java для этого класса или интерфейса, закодированные в целое число.

Module getModule()

Возвращает модуль, членом которого является этот класс или интерфейс.

String getName()

Возвращает имя сущности (класс, интерфейс, класс массива, примитивный тип или void), представленной этим объектом Class, как String.

Class<?> getNestHost()

Возвращает хост вложенного класса вложенного класса, к которому принадлежит класс или интерфейс, представленный этим объектом Class.

Class<?>[] getNestMembers()

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

Package getPackage()

Получает пакет этого класса.

String getPackageName()

Возвращает полное имя пакета.

ProtectionDomain getProtectionDomain()

Возвращает ProtectionDomain этого класса.

URL getResource​(String name)

Находит ресурс с заданным именем.

InputStream getResourceAsStream​(String name)

Находит ресурс с заданным именем.

Object[] getSigners()

Получает подписывающие лица этого класса.

String getSimpleName()

Возвращает простое имя базового класса, как указано в исходном коде.

Class<? super T> getSuperclass()

Возвращает Class, представляющий непосредственный суперкласс сущности (класс, интерфейс, примитивный тип или void), представленной этим объектом Class.

String getTypeName()

Возвращает информативную строку для имени этого типа.

TypeVariable<Class<T>>[] getTypeParameters()

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

boolean isAnnotation()

Возвращает true, если этот объект Class представляет тип аннотации.

boolean isAnnotationPresent​(Class<? extends Annotation> annotationClass)

Возвращает true, если аннотация для указанного типа присутствует на этом элементе, иначе false.

boolean isAnonymousClass()

Возвращает true, только если базовый класс является анонимным классом.

boolean isArray()

Определяет, представляет ли этот объект Class массивный класс.

boolean isAssignableFrom​(Class<?> cls)

Определяет, является ли класс или интерфейс, представленный этим объектом Class, тем же самым, или является ли он суперклассом или суперинтерфейсом класса или интерфейса, представленного заданным параметром Class.

boolean isEnum()

Возвращает true, если и только если этот класс был объявлен как перечисление в исходном коде.

boolean isInstance​(Object obj)

Определяет, является ли указанный Object совместимым по присваиванию с объектом, представленным этим объектом Class.

boolean isInterface()

Определяет, представляет ли указанный объект Class тип интерфейса.

boolean isLocalClass()

Возвращает true, только если базовый класс является локальным классом.

boolean isMemberClass()

Возвращает true, только если базовый класс является вложенным классом.

boolean isNestmateOf​(Class<?> c)

Определяет, является ли заданный Class соседом по вложенности класса или интерфейса, представленного этим объектом Class.

boolean isPrimitive()

Определяет, представляет ли указанный объект Class примитивный тип.

boolean isSynthetic()

Возвращает true, если этот класс является синтетическим классом; в противном случае возвращает false.

T newInstance()

Устаревший.

Этот метод передает любое исключение, сгенерированное конструктором без параметров, включая исключение с проверкой.

String toGenericString()

Возвращает строку, описывающую этот объект Class, включая информацию о модификаторах и параметрах типов.

String toString()

Преобразует объект в строку.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы

toString

public String toString()

Преобразует объект в строку. Представление строки — это строка "class" или "interface", за которой следует пробел и полное квалифицированное имя класса в формате, возвращаемом getName. Если этот Class объект представляет примитивный тип, этот метод возвращает имя примитивного типа. Если этот Class объект представляет тип void, этот метод возвращает "void". Если этот Class объект представляет тип массива, этот метод возвращает "class ", за которым следует getName.

Overrides:
toString в классе Object
Возвращает:
строковое представление этого объекта класса.

toGenericString

public String toGenericString()

Возвращает строку, описывающую этот Class, включая информацию о модификаторах и параметрах типа. Строка форматируется как список модификаторов типа, если таковые имеются, за которым следует тип (пустая строка для примитивных типов и class, enum, interface или @interface, соответственно), за которым следует имя типа, за которым следует список параметров типа в угловых скобках через запятую, если таковые имеются. Пробел используется для разделения модификаторов друг от друга и для разделения модификаторов от типа. Модификаторы встречаются в каноническом порядке. Если параметров типа нет, список параметров типа пропускается. Для массива тип начинается с имени типа, за которым следует список параметров типа в угловых скобках через запятую, если таковые имеются, за которым следует последовательность [] символов, по одной паре скобок на размерность массива.

Обратите внимание, что поскольку генерируется информация о представлении типа во время выполнения, могут присутствовать модификаторы, отсутствующие в исходном коде или недопустимые в исходном коде.

Возвращает:
строка, описывающая этот Class, включая информацию о модификаторах и параметрах типа
С момента:
1.8

forName

public static Class<?> forName(String className)
                        throws ClassNotFoundException

Возвращает объект Class, связанный с классом или интерфейсом с заданным именем строки. Вызов этого метода эквивалентен:

Class.forName(className, true, currentLoader)
, где currentLoader обозначает определяющий класс загрузчик текущего класса.

Например, следующий фрагмент кода возвращает описание Class во время выполнения для класса с именем java.lang.Thread:

Class t = Class.forName("java.lang.Thread")

Вызов forName("X") приводит к инициализации класса с именем X.

Параметры:
className - полное квалифицированное имя требуемого класса.
Возвращает:
объект Class для класса с указанным именем.
Исключения:
LinkageError - если связь завершается с ошибкой
ExceptionInInitializerError - если инициализация, вызванная этим методом, завершается с ошибкой
ClassNotFoundException - если класс не может быть найден

forName

public static Class<?> forName(String name,
                               boolean initialize,
                               ClassLoader loader)
                        throws ClassNotFoundException

Возвращает объект Class, связанный с классом или интерфейсом с заданным строковым именем, используя заданный класс загрузчик. Учитывая полное квалифицированное имя класса или интерфейса (в том же формате, что и возвращаемое getName), этот метод пытается найти, загрузить и связать класс или интерфейс. Для загрузки класса или интерфейса используется указанный класс загрузчик. Если параметр loader равен null, класс загружается через загрузчик Bootstrap. Класс инициализируется только если параметр initialize равен true и если он не был инициализирован ранее.

Если name обозначает примитивный тип или void, будет предпринята попытка найти пользовательский класс в безымянном пакете, имя которого равно name. Поэтому этот метод не может использоваться для получения каких-либо из объектов Class, представляющих примитивные типы или void.

Если name обозначает класс массива, тип компонента класса массива загружается, но не инициализируется.

Например, в методе экземпляра выражение:

Class.forName("Foo")
эквивалентно:
Class.forName("Foo", true, this.getClass().getClassLoader())
Обратите внимание, что этот метод генерирует ошибки, связанные с загрузкой, связыванием или инициализацией, как указано в разделах 12.2, 12.3 и 12.4 спецификации языка Java. Обратите внимание, что этот метод не проверяет, доступен ли запрашиваемый класс своему вызывающему.
Параметры:
name - полное квалифицированное имя требуемого класса
initialize - если true, класс будет инициализирован. См. раздел 12.4 спецификации языка Java.
loader - класс загрузчик, из которого должен быть загружен класс
Возвращает:
объект класса, представляющий требуемый класс
Исключения:
LinkageError - если связь завершается с ошибкой
ExceptionInInitializerError - если инициализация, вызванная этим методом, завершается с ошибкой
ClassNotFoundException - если класс не может быть найден указанным классом загрузчика
SecurityException - если присутствует менеджер безопасности, а loader является null, и загрузчик вызывающего класса не является null, и у вызывающего нет RuntimePermission("getClassLoader")
С момента:
1.2
См. также:
forName(String), ClassLoader

forName

public static Class<?> forName(Module module,
                               String name)

Возвращает Class с данным бинарным именем в заданном модуле.

Этот метод пытается найти, загрузить и связать класс или интерфейс. Он не запускает инициализатор класса. Если класс не найден, этот метод возвращает null.

Если загрузчик класса заданного модуля определяет другие модули и заданное имя — это класс, определенный в другом модуле, этот метод возвращает null после загрузки класса.

Этот метод не проверяет, доступен ли запрашиваемый класс своему вызывающему.

Примечание API:
Этот метод возвращает null при ошибке вместо выброса ClassNotFoundException, как это делает метод forName(String, boolean, ClassLoader). Проверка безопасности — это проверка разрешений на основе стека, если вызывающий загружает класс в другом модуле.
Параметры:
module - Модуль
name - Бинарное имя класса
Возвращает:
объект Class заданного имени, определенного в заданном модуле; null, если не найден.
Исключения:
NullPointerException - если указанный модуль или имя являются null
LinkageError - если связь завершается с ошибкой
SecurityException -
  • если вызывающий не является указанным модулем и разрешение RuntimePermission("getClassLoader") отклонено; или
  • доступ к содержимому модуля запрещен. Например, проверка разрешений будет выполнена, когда класс загрузчик вызовет ModuleReader.open(String) для чтения байтов файла класса в модуле.
С момента:
9

newInstance

@Deprecated(since="9")
public T newInstance()
              throws InstantiationException,
                     IllegalAccessException
Устаревший.

Этот метод передает любое исключение, сгенерированное конструктором по умолчанию, включая исключение с проверкой. Использование этого метода фактически обходит проверку исключений во время компиляции, которая в противном случае выполнялась бы компилятором. Метод Constructor.newInstance избегает этой проблемы, оборачивая любое исключение, сгенерированное конструктором, в (проверяемое) InvocationTargetException.

Вызов

clazz.newInstance()
может быть заменен на
clazz.getDeclaredConstructor().newInstance()
. Последовательность вызовов подразумевается, что может сгенерировать дополнительные типы исключений InvocationTargetException и NoSuchMethodException. Оба эти типа исключений являются подклассами ReflectiveOperationException.

Создает новый экземпляр класса, представленного этим объектом Class. Класс создаётся так, как если бы он был вызван выражением new с пустым списком аргументов. Класс инициализируется, если он ещё не был инициализирован.

Возвращает:
новый созданный экземпляр класса, представленного этим объектом.
Исключения:
IllegalAccessException - если класс или его конструктор по умолчанию недоступны.
InstantiationException - если этот объект Class представляет абстрактный класс, интерфейс, класс массива, примитивный тип или void; или если у класса нет конструктора по умолчанию; или если создание завершается неудачно по другим причинам.
ExceptionInInitializerError - если инициализация, вызванная этим методом, завершается неудачно.
SecurityException - Если менеджер безопасности, s, присутствует, и загрузчик вызывающего класса не такой же, как и загрузчик класса текущего класса, и вызов s.checkPackageAccess() отклоняет доступ к пакету этого класса.

isInstance

public boolean isInstance(Object obj)

Определяет, является ли указанный Object совместимым с присваиванием с объектом, представленным этим Class. Этот метод является динамическим эквивалентом оператора языка Java instanceof. Метод возвращает true, если указанный Object аргумент не равен null и может быть преобразован к типу ссылки, представленному этим объектом Class, без повышения ClassCastException.. В противном случае он возвращает false.

В частности, если этот объект Class представляет объявленный класс, этот метод возвращает true, если указанный аргумент Object является экземпляром представленного класса (или любого его подкласса); в противном случае он возвращает false. Если этот объект Class представляет класс массива, этот метод возвращает true, если указанный аргумент Object может быть преобразован в объект класса массива посредством тождественного преобразования или расширяющего преобразования ссылки; в противном случае он возвращает false. Если этот объект Class представляет интерфейс, этот метод возвращает true, если класс или любой суперкласс указанного аргумента Object реализует этот интерфейс; в противном случае он возвращает false. Если этот объект Class представляет примитивный тип, этот метод возвращает false.

Parameters:
obj - проверяемый объект
Returns:
true, если obj является экземпляром этого класса
Since:
1.1

isAssignableFrom

public boolean isAssignableFrom(Class<?> cls)

Определяет, является ли класс или интерфейс, представленный этим объектом Class, тем же самым, или является суперклассом или суперинтерфейсом класса или интерфейса, представленного указанным параметром Class. В этом случае возвращает true; в противном случае возвращает false. Если этот объект Class представляет примитивный тип, этот метод возвращает true, если указанный параметр Class точно равен этому объекту Class; в противном случае он возвращает false.

В частности, этот метод проверяет, может ли тип, представленный указанным параметром Class, быть преобразован в тип, представленный этим объектом Class, посредством тождественного преобразования или расширяющего преобразования ссылки. Подробности см. в разделе Спецификации языка Java, разделы 5.1.1 и 5.1.4.

Parameters:
cls - проверяемый объект Class
Returns:
значение boolean, указывающее, могут ли объекты типа cls быть присвоены объектам этого класса
Throws:
NullPointerException - если указанный параметр Class равен null.
Since:
1.1

isInterface

public boolean isInterface()

Определяет, представляет ли указанный объект Class тип интерфейса.

Returns:
true, если этот объект представляет интерфейс; false в противном случае.

isArray

public boolean isArray()

Определяет, представляет ли этот объект Class класс массива.

Returns:
true, если этот объект представляет класс массива; false в противном случае.
Since:
1.1

isPrimitive

public boolean isPrimitive()

Определяет, представляет ли указанный объект Class примитивный тип.

Существуют девять предопределенных объектов Class для представления восьми примитивных типов и void. Они создаются виртуальной машиной Java и имеют те же имена, что и примитивные типы, которые они представляют, а именно boolean, byte, char, short, int, long, float и double.

Доступ к этим объектам возможен только через следующие общедоступные статические конечные переменные, и это единственные объекты Class, для которых этот метод возвращает true.

Returns:
true тогда и только тогда, когда этот класс представляет примитивный тип
Since:
1.1
See Also:
Boolean.TYPE, Character.TYPE, Byte.TYPE, Short.TYPE, Integer.TYPE, Long.TYPE, Float.TYPE, Double.TYPE, Void.TYPE

isAnnotation

public boolean isAnnotation()

Возвращает true, если этот объект Class представляет тип аннотации. Обратите внимание, что если этот метод возвращает true, isInterface() также вернет true, поскольку все типы аннотаций также являются интерфейсами.

Returns:
true, если этот объект класса представляет тип аннотации; false в противном случае
Since:
1.5

isSynthetic

public boolean isSynthetic()

Возвращает true, если этот класс является синтетическим классом; в противном случае возвращает false.

Returns:
true, если и только если этот класс является синтетическим классом в соответствии со спецификацией языка Java.
Since:
1.5

getName

public String getName()

Возвращает имя сущности (класс, интерфейс, класс массива, примитивный тип или void), представленной этим объектом Class, как String.

Если этот объект класса представляет тип ссылки, который не является типом массива, то возвращается двоичное имя класса, как указано в Спецификации языка Java™.

Если этот объект класса представляет примитивный тип или void, возвращаемое имя равно String, равному ключевому слову языка Java, соответствующему примитивному типу или void.

Если этот объект класса представляет класс массивов, то внутренний вид имени состоит из имени типа элемента, предваряемого одним или несколькими символами '[', представляющими глубину вложения массива. Кодирование имен типов элементов следующее:

Тип элемента Кодирование
boolean Z
byte B
char C
класс или интерфейс Lclassname;
double D
float F
int I
long J
short S

Имя класса или интерфейса classname — это двоичное имя класса, указанного выше.

Примеры:

String.class.getName()
    returns "java.lang.String"
byte.class.getName()
    returns "byte"
(new Object[3]).getClass().getName()
    returns "[Ljava.lang.Object;"
(new int[3][4][5][6][7][8][9]).getClass().getName()
    returns "[[[[[[[I"
Returns:
имя класса или интерфейса, представленного этим объектом.

getClassLoader

public ClassLoader getClassLoader()

Возвращает загрузчик класса для класса. Некоторые реализации могут использовать null для представления загрузчика начальной загрузки. В таких реализациях этот метод вернёт null, если этот класс загружен загрузчиком начальной загрузки.

Если этот объект представляет примитивный тип или void, возвращается null.

Returns:
загрузчик класса, который загрузил класс или интерфейс, представленный этим объектом.
Throws:
SecurityException - если присутствует менеджер безопасности, а загрузчик класса вызывающего кода не null и не такой же, как или предковый, как загрузчик класса, загрузчик класса которого запрашивается, и вызывающий код не имеет RuntimePermission("getClassLoader")
See Also:
ClassLoader, SecurityManager.checkPermission(java.security.Permission), RuntimePermission

getModule

public Module getModule()

Возвращает модуль, членом которого является этот класс или интерфейс. Если этот класс представляет тип массива, этот метод возвращает Module для типа элемента. Если этот класс представляет примитивный тип или void, возвращается объект Module для модуля java.base. Если этот класс находится в безымянном модуле, возвращается безымянный Module загрузчика класса для этого класса.

Returns:
модуль, членом которого является этот класс или интерфейс
Since:
9

getTypeParameters

public TypeVariable<Class<T>>[] getTypeParameters()

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

Specified by:
getTypeParameters в интерфейсе GenericDeclaration
Returns:
массив объектов TypeVariable, которые представляют переменные типов, объявленные этим обобщённым объявлением
Throws:
GenericSignatureFormatError - если обобщённый подпись этого обобщённого объявления не соответствует формату, указанному в Спецификации виртуальной машины Java™
Since:
1.5

getSuperclass

public Class<? super T> getSuperclass()

Возвращает Class, представляющий непосредственный суперкласс сущности (класс, интерфейс, примитивный тип или void), представленной этим объектом Class. Если этот объект Class представляет класс Object, интерфейс, примитивный тип или void, возвращается null. Если этот объект представляет класс массива, возвращается объект Class, представляющий класс Object.

Returns:
непосредственный суперкласс класса, представленного этим объектом

getGenericSuperclass

public Type getGenericSuperclass()

Возвращает Type, представляющий непосредственный суперкласс сущности (класс, интерфейс, примитивный тип или void), представленной этим Class.

Если суперкласс является параметризованным типом, объект Type, возвращаемый, должен точно отражать фактические параметры типа, используемые в исходном коде. Параметризованный тип, представляющий суперкласс, создается, если он не был создан ранее. См. объявление ParameterizedType для семантики процесса создания параметризованных типов. Если этот Class представляет собой класс Object, интерфейс, примитивный тип или void, то возвращается null. Если этот объект представляет класс массива, то возвращается объект Class, представляющий класс Object.

Возвращает:
непосредственный суперкласс класса, представленного этим объектом
Изначает:
GenericSignatureFormatError - если сигнатура обобщенного класса не соответствует формату, указанному в Спецификации Java™ Virtual Machine
TypeNotPresentException - если обобщенный суперкласс ссылается на не существующее объявление типа
MalformedParameterizedTypeException - если обобщенный суперкласс ссылается на параметризованный тип, который не может быть создан по какой-либо причине
С тех пор как:
1.5

getPackage

public Package getPackage()

Получает пакет этого класса.

Если этот класс представляет тип массива, примитивный тип или void, этот метод возвращает null.

Возвращает:
пакет этого класса.

getPackageName

public String getPackageName()

Возвращает полное квалифицированное имя пакета.

Если этот класс является классом верхнего уровня, то этот метод возвращает полное квалифицированное имя пакета, членом которого является класс, или пустую строку, если класс находится в безымянном пакете.

Если этот класс является внутренним классом, то этот метод эквивалентен вызову getPackageName() для внешнего класса.

Если этот класс является локальным классом или анонимным классом, то этот метод эквивалентен вызову getPackageName() для объявляющего класса внешнего метода или внешнего конструктора.

Если этот класс представляет тип массива, этот метод возвращает имя пакета типа элемента. Если этот класс представляет примитивный тип или void, возвращается имя пакета "java.lang".

Возвращает:
полное квалифицированное имя пакета
С тех пор как:
9

getInterfaces

public Class<?>[] getInterfaces()

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

Если этот объект представляет класс, возвращаемое значение — массив, содержащий объекты, представляющие все интерфейсы, непосредственно реализуемые классом. Порядок интерфейсных объектов в массиве соответствует порядку имён интерфейсов в строке implements объявления класса, представленного этим объектом. Например, приведём объявление:

class Shimmer implements FloorWax, DessertTopping { ... }
предположим, что значение s является экземпляром Shimmer; значение выражения:
s.getClass().getInterfaces()[0]
— объект Class, представляющий интерфейс FloorWax; и значение:
s.getClass().getInterfaces()[1]
— объект Class, представляющий интерфейс DessertTopping.

Если этот объект представляет интерфейс, массив содержит объекты, представляющие все интерфейсы, непосредственно расширяемые интерфейсом. Порядок интерфейсных объектов в массиве соответствует порядку имён интерфейсов в строке extends объявления интерфейса, представленного этим объектом.

Если этот объект представляет класс или интерфейс, не реализующий никаких интерфейсов, метод возвращает массив длины 0.

Если этот объект представляет примитивный тип или void, метод возвращает массив длины 0.

Если этот объект Class представляет тип массива, возвращаются интерфейсы Cloneable и java.io.Serializable в указанном порядке.

Возвращает:
массив интерфейсов, непосредственно реализуемых этим классом

getGenericInterfaces

public Type[] getGenericInterfaces()

Возвращает Type, представляющие интерфейсы, непосредственно реализуемые классом или интерфейсом, представленным этим объектом.

Если суперинтерфейс является параметризованным типом, возвращаемый объект Type для него должен точно отражать фактические параметры типа, используемые в исходном коде. Параметризованный тип, представляющий каждый суперинтерфейс, создается, если он не был создан ранее. См. объявление ParameterizedType для семантики процесса создания параметризованных типов.

Если этот объект представляет класс, возвращаемое значение — массив, содержащий объекты, представляющие все интерфейсы, непосредственно реализуемые классом. Порядок интерфейсных объектов в массиве соответствует порядку имён интерфейсов в строке implements объявления класса, представленного этим объектом.

Если этот объект представляет интерфейс, массив содержит объекты, представляющие все интерфейсы, непосредственно расширяемые интерфейсом. Порядок интерфейсных объектов в массиве соответствует порядку имён интерфейсов в строке extends объявления интерфейса, представленного этим объектом.

Если этот объект представляет класс или интерфейс, не реализующий никаких интерфейсов, метод возвращает массив длины 0.

Если этот объект представляет примитивный тип или void, метод возвращает массив длины 0.

Если этот объект Class представляет тип массива, возвращаются интерфейсы Cloneable и java.io.Serializable в указанном порядке.

Возвращает:
массив интерфейсов, непосредственно реализуемых этим классом
Изначает:
GenericSignatureFormatError - если сигнатура обобщенного класса не соответствует формату, указанному в Спецификации Java™ Virtual Machine
TypeNotPresentException - если какой-либо из обобщенных суперинтерфейсов ссылается на не существующее объявление типа
MalformedParameterizedTypeException - если какой-либо из обобщенных суперинтерфейсов ссылается на параметризованный тип, который не может быть создан по какой-либо причине
С тех пор как:
1.5

getComponentType

public Class<?> getComponentType()

Возвращает Class, представляющий тип компонента массива. Если этот класс не представляет массив, этот метод возвращает null.

Возвращает:
Class, представляющий тип компонента этого класса, если этот класс является массивом
С тех пор как:
1.1
См. также:
Array

getModifiers

public int getModifiers()

Возвращает модификаторы языка Java для этого класса или интерфейса, закодированные в целое число. Модификаторы состоят из констант виртуальной машины Java для public, protected, private, final, static, abstract и interface; они должны быть декодированы с помощью методов класса Modifier.

Если базовый класс является классом массива, то его модификаторы public, private и protected совпадают с модификаторами его типа компонента. Если этот Class представляет примитивный тип или void, его модификатор public всегда равен true, а его модификаторы protected и private всегда равны false. Если этот объект представляет класс массива, примитивный тип или void, то его модификатор final всегда равен true, а его модификатор интерфейса всегда равен false. Значения его других модификаторов не определяются этой спецификацией.

Кодировки модификаторов определены в Спецификации виртуальной машины Java, таблица 4.1.

Возвращает:
int, представляющий модификаторы этого класса
С тех пор как:
1.1
См. также:
Modifier

getSigners

public Object[] getSigners()

Получает подписывающие лица этого класса.

Возвращает:
подписывающие лица этого класса или null, если подписывающих лиц нет. В частности, этот метод возвращает null, если этот объект представляет примитивный тип или void.
С тех пор как:
1.1

getEnclosingMethod

public Method getEnclosingMethod()
                          throws SecurityException

Если этот объект Class представляет локальный или анонимный класс в методе, возвращает объект Method, представляющий метод, непосредственно окружающий базовый класс. В противном случае возвращает null. В частности, этот метод возвращает null, если базовый класс является локальным или анонимным классом, непосредственно заключённым в объявление типа, инициализатор экземпляра или статический инициализатор.

Возвращает:
метод, непосредственно окружающий базовый класс, если этот класс является локальным или анонимным; в противном случае null.
Изначает:
SecurityException - Если присутствует менеджер безопасности, s, и выполняются следующие условия:
  • загрузчик класса вызывающего не совпадает с загрузчиком класса внешнего класса, и вызов метода s.checkPermission с RuntimePermission("accessDeclaredMembers") отказывается от доступа к методам внутри внешнего класса
  • загрузчик класса вызывающего не совпадает с загрузчиком класса внешнего класса или не является его предком, и вызов метода s.checkPackageAccess() отказывается от доступа к пакету внешнего класса
С тех пор как:
1.5

getEnclosingConstructor

public Constructor<?> getEnclosingConstructor()
                                       throws SecurityException

Если этот объект Class представляет локальный или анонимный класс внутри конструктора, возвращает объект Constructor, представляющий непосредственно окружающий конструктор базового класса. В противном случае возвращает null. В частности, этот метод возвращает null, если базовый класс является локальным или анонимным классом, непосредственно заключенным в объявление типа, инициализатор экземпляра или статический инициализатор.

Возвращает:
непосредственно окружающий конструктор базового класса, если этот класс является локальным или анонимным; в противном случае null.
Выбрасывает:
SecurityException - Если присутствует менеджер безопасности, s, и выполняются какие-либо из следующих условий:
  • загрузчик класса вызывающего не совпадает с загрузчиком класса окружающего класса и вызов метода s.checkPermission с RuntimePermission("accessDeclaredMembers") запрещает доступ к конструкторам внутри окружающего класса
  • загрузчик класса вызывающего не совпадает с или не является предком загрузчика класса окружающего класса, и вызов метода s.checkPackageAccess() запрещает доступ к пакету окружающего класса
С:
1.5

getDeclaringClass

public Class<?> getDeclaringClass()
                           throws SecurityException

Если класс или интерфейс, представленный этим Class объектом, является членом другого класса, возвращает Class объект, представляющий класс, в котором он был объявлен. Этот метод возвращает null, если этот класс или интерфейс не является членом любого другого класса. Если этот Class объект представляет класс массива, примитивный тип или void, то этот метод возвращает null.

Возвращает:
класс объявления для этого класса
Выбрасывает:
SecurityException - Если присутствует менеджер безопасности, s, и загрузчик класса вызывающего не совпадает с или не является предком загрузчика класса объявления, и вызов метода s.checkPackageAccess() запрещает доступ к пакету объявляющего класса
С:
1.1

getEnclosingClass

public Class<?> getEnclosingClass()
                           throws SecurityException

Возвращает непосредственно окружающий класс базового класса. Если базовый класс является верхним уровнем класса, этот метод возвращает null.

Возвращает:
непосредственно окружающий класс базового класса
Выбрасывает:
SecurityException - Если присутствует менеджер безопасности, s, и загрузчик класса вызывающего не совпадает с или не является предком загрузчика класса окружающего класса, и вызов метода s.checkPackageAccess() запрещает доступ к пакету окружающего класса
С:
1.5

getSimpleName

public String getSimpleName()

Возвращает простое имя базового класса, как указано в исходном коде. Возвращает пустую строку, если базовый класс анонимный.

Простое имя массива — это простое имя типа компонента с добавленным "[]". В частности, простое имя массива, тип компонента которого анонимный, — "[]".

Возвращает:
простое имя базового класса
С:
1.5

getTypeName

public String getTypeName()

Возвращает информативную строку для имени этого типа.

Определено в:
getTypeName в интерфейсе Type
Возвращает:
информативную строку для имени этого типа
С:
1.8

getCanonicalName

public String getCanonicalName()

Возвращает каноническое имя базового класса, как определено спецификацией языка Java. Возвращает null, если базовый класс не имеет канонического имени (т.е. если это локальный или анонимный класс или массив, тип компонента которого не имеет канонического имени).

Возвращает:
каноническое имя базового класса, если оно существует, и null в противном случае.
С:
1.5

isAnonymousClass

public boolean isAnonymousClass()

Возвращает true тогда и только тогда, когда базовый класс является анонимным классом.

Возвращает:
true тогда и только тогда, когда этот класс является анонимным классом.
С:
1.5

isLocalClass

public boolean isLocalClass()

Возвращает true тогда и только тогда, когда базовый класс является локальным классом.

Возвращает:
true тогда и только тогда, когда этот класс является локальным классом.
С:
1.5

isMemberClass

public boolean isMemberClass()

Возвращает true тогда и только тогда, когда базовый класс является членом класса.

Возвращает:
true тогда и только тогда, когда этот класс является членом класса.
С:
1.5

getClasses

public Class<?>[] getClasses()

Возвращает массив, содержащий Class объекты, представляющие все публичные классы и интерфейсы, которые являются членами класса, представленного этим Class объектом. Это включает в себя публичные классы и интерфейсы, унаследованные от суперклассов, и публичные классы и интерфейсы, объявленные классом. Этот метод возвращает массив длиной 0, если у этого Class объекта нет публичных членов классов или интерфейсов. Этот метод также возвращает массив длиной 0, если этот Class объект представляет примитивный тип, класс массива или void.

Возвращает:
массив Class объектов, представляющих публичных членов этого класса
Выбрасывает:
SecurityException - Если присутствует менеджер безопасности, s, и загрузчик класса вызывающего не совпадает с или не является предком загрузчика класса текущего класса, и вызов метода s.checkPackageAccess() запрещает доступ к пакету этого класса.
С:
1.1

getFields

public Field[] getFields()
                  throws SecurityException

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

Если у этого Class объекта нет доступных публичных полей, то этот метод возвращает массив длиной 0.

Если этот Class объект представляет класс, то этот метод возвращает публичные поля класса и всех его суперклассов и суперинтерфейсов.

Если этот Class объект представляет интерфейс, то этот метод возвращает поля интерфейса и всех его суперинтерфейсов.

Если этот Class объект представляет тип массива, примитивный тип или void, то этот метод возвращает массив длиной 0.

Элементы в возвращаемом массиве не отсортированы и не в определенном порядке.

Возвращает:
массив Field объектов, представляющих публичные поля
Выбрасывает:
SecurityException - Если присутствует менеджер безопасности, s, и загрузчик класса вызывающего не совпадает с или не является предком загрузчика класса текущего класса, и вызов метода s.checkPackageAccess() запрещает доступ к пакету этого класса.
С:
1.1

getMethods

public Method[] getMethods()
                    throws SecurityException

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

Если этот Class объект представляет тип массива, то возвращаемый массив содержит Method объект для каждого из публичных методов, унаследованных типом массива от Object. Он не содержит Method объект для clone().

Если этот Class объект представляет интерфейс, то возвращаемый массив не содержит каких-либо неявно объявленных методов от Object. Следовательно, если в этом интерфейсе или любом из его суперинтерфейсов нет явно объявленных методов, то возвращаемый массив имеет длину 0. (Обратите внимание, что Class объект, представляющий класс, всегда имеет публичные методы, унаследованные от Object.)

Возвращаемый массив никогда не содержит методов с именами "<init>" или "<clinit>".

Элементы в возвращаемом массиве не отсортированы и не в определенном порядке.

В общем случае результат вычисляется по следующему алгоритму из 4 шагов. Пусть C — класс или интерфейс, представленный этим Class объектом:

  1. Объединение методов состоит из:
    1. Объявленных публичных экземпляра и статических методов C, как возвращаемых getDeclaredMethods() и отфильтрованных, чтобы включать только публичные методы.
    2. Если C — это класс, отличный от Object, то включите результат вызова этого алгоритма рекурсивно на суперклассе C.
    3. Включите результаты вызова этого алгоритма рекурсивно на всех непосредственных суперинтерфейсах C, но включайте только методы экземпляров.
  2. Объединение из шага 1 разбивается на подмножества методов с одинаковой сигнатурой (имя, типы параметров) и возвращаемым типом.
  3. Внутри каждого такого подмножества выбираются только самые специфические методы. Пусть метод M — метод из набора методов с одинаковой сигнатурой и возвращаемым типом. M является наиболее специфичным, если нет такого метода N != M из того же набора, что N более специфичен, чем M. N более специфичен, чем M, если:
    1. N объявлен классом, а M — интерфейсом; или
    2. N и M оба объявлены классами или оба интерфейсами, и тип объявления N такой же или подтип типа объявления M (очевидно, если типы объявления M и N совпадают, то M и N — один и тот же метод).
  4. Результат этого алгоритма — объединение всех выбранных методов из шага 3.
Примечание API:
В классе может быть более одного метода с определенным именем и типами параметров, потому что, хотя язык Java запрещает классу объявлять несколько методов с той же сигнатурой, но разными возвращаемыми типами, виртуальная машина Java не делает этого. Это увеличение гибкости в виртуальной машине может использоваться для реализации различных функций языка. Например, ковариативные возвраты могут быть реализованы с помощью методов моста; у метода моста и переопределяемого метода была бы одинаковая сигнатура, но разные возвращаемые типы.
Возвращает:
массив Method объектов, представляющих публичные методы этого класса
Выбрасывает:
SecurityException - Если присутствует менеджер безопасности, s, и загрузчик класса вызывающего не совпадает с или не является предком загрузчика класса текущего класса, и вызов метода s.checkPackageAccess() запрещает доступ к пакету этого класса.
С:
1.1

getConstructors

public Constructor<?>[] getConstructors()
                                 throws SecurityException

Возвращает массив объектов Constructor, отражающих все открытые конструкторы класса, представленного этим объектом Class. Массив длиной 0 возвращается, если у класса нет открытых конструкторов, или если класс является классом массива, или если класс отражает примитивный тип или void. Обратите внимание, что, хотя этот метод возвращает массив объектов Constructor<T> (т.е., массив конструкторов из этого класса), тип возвращаемого значения этого метода — Constructor<?>[], а не Constructor<T>[], как можно было бы ожидать. Этот менее информативный тип возвращаемого значения необходим, так как после возвращения из этого метода массив может быть изменён для хранения объектов Constructor для разных классов, что нарушит гарантии типа Constructor<T>[].

Возвращает:
массив объектов Constructor, представляющих открытые конструкторы этого класса
Исключение:
SecurityException — если присутствует менеджер безопасности, s, и загрузчик классов вызывающего класса не совпадает с загрузчиком классов текущего класса и вызов s.checkPackageAccess() отказывается предоставить доступ к пакету этого класса.
С:
1.1

getField

public Field getField(String name)
               throws NoSuchFieldException,
                      SecurityException

Возвращает объект Field, отражающий указанное открытое поле члена класса или интерфейса, представленного этим объектом Class. Параметр name — это String, указывающий простое имя желаемого поля.

Поле, подлежащее отражению, определяется алгоритмом, который следует ниже. Пусть C — класс или интерфейс, представленный этим объектом:

  1. Если C объявляет открытое поле с указанным именем, это поле подлежит отражению.
  2. Если поле не было найдено на шаге 1 выше, этот алгоритм применяется рекурсивно к каждому прямому суперинтерфейсу C. Прямые суперинтерфейсы ищутся в порядке их объявления.
  3. Если поле не было найдено на шагах 1 и 2 выше, и C имеет суперкласс S, то этот алгоритм вызывается рекурсивно для S. Если у C нет суперкласса, то выбрасывается NoSuchFieldException.

Если этот объект Class представляет тип массива, то этот метод не находит поле length типа массива.

Параметры:
name — имя поля
Возвращает:
объект Field этого класса, указанный по name
Исключение:
NoSuchFieldException — если поле с указанным именем не найдено.
NullPointerException — если name — null
SecurityException — Если присутствует менеджер безопасности, s, и загрузчик классов вызывающего класса не совпадает с загрузчиком классов текущего класса и вызов s.checkPackageAccess() отказывается предоставить доступ к пакету этого класса.
С:
1.1

getMethod

public Method getMethod(String name,
                        Class<?>... parameterTypes)
                 throws NoSuchMethodException,
                        SecurityException

Возвращает объект Method, отражающий указанный открытый метод члена класса или интерфейса, представленного этим объектом Class. Параметр name — это String, указывающий простое имя искомого метода. Параметр parameterTypes — массив объектов Class, идентифицирующих формальные типы параметров метода в порядке объявления. Если parameterTypes — null, он обрабатывается так, как если бы он был пустым массивом.

Если этот объект Class представляет тип массива, то этот метод находит любой открытый метод, унаследованный типом массива от Object, кроме метода clone().

Если этот объект Class представляет интерфейс, то этот метод не находит никаких неявно объявленных методов из Object. Следовательно, если в этом интерфейсе или любом из его суперинтерфейсов явно не объявлены методы, то этот метод не находит ни одного метода.

Этот метод не находит методов с именем "<init>" или "<clinit>".

В общем случае, метод, подлежащий отражению, определяется алгоритмом в 4 шага, который следует ниже. Пусть C — класс или интерфейс, представленный этим объектом Class:

  1. Объединение методов состоит из:
    1. Объявленные открытые экземпляры и статические методы C, возвращаемые функцией getDeclaredMethods() и отфильтрованные, чтобы включать только открытые методы, которые соответствуют указанному name и parameterTypes
    2. Если C — класс, отличный от Object, то в него включается результат вызова этого алгоритма рекурсивно для суперкласса C.
    3. Включаются результаты вызова этого алгоритма рекурсивно для всех прямых суперинтерфейсов C, но включаются только методы экземпляров.
  2. Это объединение разбивается на подмножества методов с одинаковым типом возвращаемого значения (выбор методов из шага 1 также гарантирует, что у них одинаковое имя метода и типы параметров).
  3. Внутри каждого такого подмножества выбираются только наиболее специфичные методы. Пусть метод M — метод из набора методов с одинаковой сигнатурой VM (тип возвращаемого значения, имя, типы параметров). M является наиболее специфичным, если нет такого метода N != M из того же набора, такого что N более специфичен, чем M. N более специфичен, чем M, если:
    1. N объявлен классом, а M объявлен интерфейсом; или
    2. N и M оба объявлены классами или оба интерфейсами, и тип объявления N совпадает с типом объявления M или является подтипом типа объявления M (очевидно, если типы объявления M и N — один и тот же тип, то M и N — один и тот же метод).
  4. Результат этого алгоритма произвольно выбирается из методов с наиболее специфичным типом возвращаемого значения среди всех выбранных методов с шага 3. Пусть R — тип возвращаемого значения метода M из набора всех выбранных методов с шага 3. M — метод с наиболее специфичным типом возвращаемого значения, если нет такого метода N != M из того же набора, имеющего тип возвращаемого значения S != R, такой что S является подтипом R, как определено в R.class.isAssignableFrom(java.lang.Class<?>)(S.class).
Примечание API:
В классе может быть более одного метода с совпадающим именем и типами параметров, поскольку, хотя язык Java запрещает классу объявлять несколько методов с одинаковой сигнатурой, но разными типами возвращаемого значения, виртуальная машина Java не делает этого. Эта повышенная гибкость в виртуальной машине может использоваться для реализации различных функций языка. Например, ковариативные возвращаемые значения могут реализовываться с помощью мостов методов; мост метода и переопределяющий метод имели бы одинаковую сигнатуру, но разные типы возвращаемых значений. Этот метод возвращал бы переопределяющий метод, поскольку у него был бы более специфичный тип возвращаемого значения.
Параметры:
name — имя метода
parameterTypes — список параметров
Возвращает:
объект Method, который соответствует указанному name и parameterTypes
Исключение:
NoSuchMethodException — если соответствующий метод не найден или если имя — "<init>" или "<clinit>".
NullPointerException — если name — null
SecurityException — Если присутствует менеджер безопасности, s, и загрузчик классов вызывающего класса не совпадает с загрузчиком классов текущего класса и вызов s.checkPackageAccess() отказывается предоставить доступ к пакету этого класса.
С:
1.1

getConstructor

public Constructor<T> getConstructor(Class<?>... parameterTypes)
                              throws NoSuchMethodException,
                                     SecurityException

Возвращает объект Constructor, отражающий указанный открытый конструктор класса, представленного этим объектом Class. Параметр parameterTypes — массив объектов Class, идентифицирующих формальные типы параметров конструктора в порядке объявления. Если этот объект Class представляет внутренний класс, объявленный в контексте нестатического, типы формальных параметров включают явное окружающее экземпляра в качестве первого параметра.

Конструктор для отражения — это открытый конструктор класса, представленного этим объектом Class, типы формальных параметров которого совпадают с теми, которые указаны в parameterTypes.

Параметры:
parameterTypes — массив параметров
Возвращает:
объект Constructor открытого конструктора, который соответствует указанному parameterTypes
Исключение:
NoSuchMethodException — если соответствующий метод не найден.
SecurityException — Если присутствует менеджер безопасности, s, и загрузчик классов вызывающего класса не совпадает с загрузчиком классов текущего класса и вызов s.checkPackageAccess() отказывается предоставить доступ к пакету этого класса.
С:
1.1

getDeclaredClasses

public Class<?>[] getDeclaredClasses()
                              throws SecurityException

Возвращает массив объектов Class, отражающих все классы и интерфейсы, объявленные в качестве членов класса, представленного этим объектом Class. Это включает открытые, защищённые, по умолчанию (пакета) и приватные классы и интерфейсы, объявленные классом, но исключает унаследованные классы и интерфейсы. Этот метод возвращает массив длиной 0, если класс не объявляет никаких классов или интерфейсов в качестве членов, или если этот объект Class представляет примитивный тип, класс массива или void.

Возвращает:
массив объектов Class, представляющих все объявленные члены этого класса
Исключение:
SecurityException — Если присутствует менеджер безопасности, s, и выполняется любое из следующих условий:
  • загрузчик классов вызывающего класса не совпадает с загрузчиком классов этого класса, и вызов s.checkPermission метода с RuntimePermission("accessDeclaredMembers") отказывается предоставить доступ к объявленным классам в этом классе
  • загрузчик классов вызывающего класса не совпадает с загрузчиком классов текущего класса или не является его предком, и вызов s.checkPackageAccess() отказывается предоставить доступ к пакету этого класса
С:
1.1

getDeclaredFields

public Field[] getDeclaredFields()
                          throws SecurityException

Возвращает массив объектов Field, отражающих все поля, объявленные классом или интерфейсом, представленным этим объектом Class. Это включает поля с доступом public, protected, по умолчанию (пакетный) и private, но исключает унаследованные поля.

Если этот объект Class представляет класс или интерфейс без объявленных полей, то этот метод возвращает массив длины 0.

Если этот объект Class представляет тип массива, примитивный тип или void, то этот метод возвращает массив длины 0.

Элементы возвращаемого массива не отсортированы и не находятся в определённом порядке.

Возвращает:
массив объектов Field, представляющих все объявленные поля этого класса
Выбрасывает:
SecurityException - Если присутствует менеджер безопасности s и выполняется любое из следующих условий:
  • Загрузчик класса вызывающего кода не совпадает с загрузчиком класса и вызов метода s.checkPermission с параметром RuntimePermission("accessDeclaredMembers") запрещает доступ к объявленным полям в этом классе
  • Загрузчик класса вызывающего кода не совпадает и не является предком загрузчика класса и вызов метода s.checkPackageAccess() запрещает доступ к пакету этого класса
С:
1.1

getDeclaredMethods

public Method[] getDeclaredMethods()
                            throws SecurityException

Возвращает массив, содержащий объекты Method, отражающие все объявленные методы класса или интерфейса, представленного этим объектом Class, включая public, protected, по умолчанию (пакетный) доступ и private методы, но исключая унаследованные методы.

Если этот объект Class представляет тип с несколькими объявленными методами с одинаковыми именами и типами параметров, но разными типами возвращаемых значений, то возвращаемый массив содержит по одному объекту Method для каждого такого метода.

Если этот объект Class представляет тип с методом инициализации класса <clinit>, то возвращаемый массив не содержит соответствующего объекта Method.

Если этот объект Class представляет класс или интерфейс без объявленных методов, то возвращаемый массив имеет длину 0.

Если этот объект Class представляет тип массива, примитивный тип или void, то возвращаемый массив имеет длину 0.

Элементы возвращаемого массива не отсортированы и не находятся в определённом порядке.

Возвращает:
массив объектов Method, представляющих все объявленные методы этого класса
Выбрасывает:
SecurityException - Если присутствует менеджер безопасности s и выполняется любое из следующих условий:
  • Загрузчик класса вызывающего кода не совпадает с загрузчиком класса и вызов метода s.checkPermission с параметром RuntimePermission("accessDeclaredMembers") запрещает доступ к объявленным методам в этом классе
  • Загрузчик класса вызывающего кода не совпадает и не является предком загрузчика класса и вызов метода s.checkPackageAccess() запрещает доступ к пакету этого класса
С:
1.1

getDeclaredConstructors

public Constructor<?>[] getDeclaredConstructors()
                                         throws SecurityException

Возвращает массив объектов Constructor, отражающих все конструкторы, объявленные классом, представленным этим объектом Class. Это конструкторы public, protected, по умолчанию (пакетный) и private. Элементы возвращаемого массива не отсортированы и не находятся в определённом порядке. Если у класса есть конструктор по умолчанию, он включён в возвращаемый массив. Этот метод возвращает массив длины 0, если этот объект Class представляет интерфейс, примитивный тип, класс массива или void.

См. Спецификацию языка Java, раздел 8.2.

Возвращает:
массив объектов Constructor, представляющих все объявленные конструкторы этого класса
Выбрасывает:
SecurityException - Если присутствует менеджер безопасности s и выполняется любое из следующих условий:
  • Загрузчик класса вызывающего кода не совпадает с загрузчиком класса и вызов метода s.checkPermission с параметром RuntimePermission("accessDeclaredMembers") запрещает доступ к объявленным конструкторам в этом классе
  • Загрузчик класса вызывающего кода не совпадает и не является предком загрузчика класса и вызов метода s.checkPackageAccess() запрещает доступ к пакету этого класса
С:
1.1

getDeclaredField

public Field getDeclaredField(String name)
                       throws NoSuchFieldException,
                              SecurityException

Возвращает объект Field, отражающий указанное объявленное поле класса или интерфейса, представленного этим объектом Class. Параметр name — это строка, которая задаёт простое имя нужного поля.

Если этот объект Class представляет тип массива, то этот метод не находит поля length типа массива.

Параметры:
name - имя поля
Возвращает:
объект Field для указанного поля в этом классе
Выбрасывает:
NoSuchFieldException - если поле с заданным именем не найдено.
NullPointerException - если name равно null
SecurityException - Если присутствует менеджер безопасности s и выполняется любое из следующих условий:
  • Загрузчик класса вызывающего кода не совпадает с загрузчиком класса и вызов метода s.checkPermission с параметром RuntimePermission("accessDeclaredMembers") запрещает доступ к объявленному полю
  • Загрузчик класса вызывающего кода не совпадает и не является предком загрузчика класса и вызов метода s.checkPackageAccess() запрещает доступ к пакету этого класса
С:
1.1

getDeclaredMethod

public Method getDeclaredMethod(String name,
                                Class<?>... parameterTypes)
                         throws NoSuchMethodException,
                                SecurityException

Возвращает объект Method, отражающий указанный объявленный метод класса или интерфейса, представленного этим объектом Class. Параметр name — это строка, задающая простое имя нужного метода, а параметр parameterTypes — массив объектов Class, определяющих формальные типы параметров метода в порядке объявления. Если в классе объявлен более одного метода с одинаковыми типами параметров и один из этих методов имеет тип возвращаемого значения, который более специфичен, чем любой другой, то возвращается этот метод; в противном случае выбирается один из методов произвольно. Если имя равно "<init>" или "<clinit>", то генерируется исключение NoSuchMethodException.

Если этот объект Class представляет тип массива, то этот метод не находит метод clone().

Параметры:
name - имя метода
parameterTypes - массив параметров
Возвращает:
объект Method для метода этого класса, соответствующего указанному имени и параметрам
Выбрасывает:
NoSuchMethodException - если соответствующий метод не найден.
NullPointerException - если name равно null
SecurityException - Если присутствует менеджер безопасности s и выполняется любое из следующих условий:
  • Загрузчик класса вызывающего кода не совпадает с загрузчиком класса и вызов метода s.checkPermission с параметром RuntimePermission("accessDeclaredMembers") запрещает доступ к объявленному методу
  • Загрузчик класса вызывающего кода не совпадает и не является предком загрузчика класса и вызов метода s.checkPackageAccess() запрещает доступ к пакету этого класса
С:
1.1

getDeclaredConstructor

public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
                                      throws NoSuchMethodException,
                                             SecurityException

Возвращает объект Constructor, отражающий указанный конструктор класса или интерфейса, представленного этим объектом Class. Параметр parameterTypes — это массив объектов Class, определяющих формальные типы параметров конструктора в порядке объявления. Если этот объект Class представляет вложенный класс, объявленный в контексте, отличном от статического, формальные типы параметров включают явную внешнюю экземпляцию в качестве первого параметра.

Параметры:
parameterTypes - массив параметров
Возвращает:
Объект Constructor для конструктора со списком параметров
Выбрасывает:
NoSuchMethodException - если соответствующий метод не найден.
SecurityException - Если присутствует менеджер безопасности s и выполняется любое из следующих условий:
  • Загрузчик класса вызывающего кода не совпадает с загрузчиком класса и вызов метода s.checkPermission с параметром RuntimePermission("accessDeclaredMembers") запрещает доступ к объявленному конструктору
  • Загрузчик класса вызывающего кода не совпадает и не является предком загрузчика класса и вызов метода s.checkPackageAccess() запрещает доступ к пакету этого класса
С:
1.1

getResourceAsStream

public InputStream getResourceAsStream(String name)

Находит ресурс с заданным именем.

Если этот класс находится в именованном Module, то этот метод попытается найти ресурс в модуле. Это делается путём делегирования методу загрузчика классов модуля findResource(String,String), вызывая его с именем модуля и абсолютным именем ресурса. Ресурсы в именованных модулях подчиняются правилам инкапсуляции, указанным в Module getResourceAsStream методе, и поэтому этот метод возвращает null, когда ресурс является не-".class" ресурсом в пакете, который не открыт для модуля вызывающего.

В противном случае, если этот класс не находится в именованном модуле, правила поиска ресурсов, связанных с данным классом, реализуются определяющим загрузчиком классов класса. Этот метод делегирует загрузчику классов этого объекта. Если этот объект был загружен загрузчиком Bootstrap, метод делегирует ClassLoader.getSystemResourceAsStream(java.lang.String).

Перед делегированием абсолютное имя ресурса строится из заданного имени ресурса по следующему алгоритму:

  • Если name начинается с '/' ('\u002f'), то абсолютное имя ресурса — это часть name, следующая за '/'.
  • В противном случае, абсолютное имя имеет следующий вид:
    modified_package_name/name

    Где modified_package_name — имя пакета этого объекта с '/', заменённым на '.' ('\u002e').

Параметры:
name - имя искомого ресурса
Возвращает:
Объект InputStream; null если ресурс с этим именем не найден, ресурс находится в пакете, который не открыт по крайней мере для модуля вызывающего, или доступ к ресурсу запрещён менеджером безопасности.
Выбрасывает:
NullPointerException - Если name является null
С:
1.1
См. также:
Module.getResourceAsStream(String)

getResource

public URL getResource(String name)

Находит ресурс с заданным именем.

Если этот класс находится в именованном Module, то этот метод попытается найти ресурс в модуле. Это делается путём делегирования методу загрузчика классов модуля findResource(String,String), вызывая его с именем модуля и абсолютным именем ресурса. Ресурсы в именованных модулях подчиняются правилам инкапсуляции, указанным в Module getResourceAsStream методе, и поэтому этот метод возвращает null, когда ресурс является не-".class" ресурсом в пакете, который не открыт для модуля вызывающего.

В противном случае, если этот класс не находится в именованном модуле, правила поиска ресурсов, связанных с данным классом, реализуются определяющим загрузчиком классов класса. Этот метод делегирует загрузчику классов этого объекта. Если этот объект был загружен загрузчиком Bootstrap, метод делегирует ClassLoader.getSystemResource(java.lang.String).

Перед делегированием абсолютное имя ресурса строится из заданного имени ресурса по следующему алгоритму:

  • Если name начинается с '/' ('\u002f'), то абсолютное имя ресурса — это часть name, следующая за '/'.
  • В противном случае, абсолютное имя имеет следующий вид:
    modified_package_name/name

    Где modified_package_name — имя пакета этого объекта с '/', заменённым на '.' ('\u002e').

Параметры:
name - имя искомого ресурса
Возвращает:
Объект URL; null если ресурс с этим именем не найден, ресурс не может быть найден по URL, ресурс находится в пакете, который не открыт по крайней мере для модуля вызывающего, или доступ к ресурсу запрещён менеджером безопасности.
Выбрасывает:
NullPointerException - Если name является null
С:
1.1

getProtectionDomain

public ProtectionDomain getProtectionDomain()

Возвращает ProtectionDomain этого класса. Если установлен менеджер безопасности, этот метод сначала вызывает метод менеджера безопасности checkPermission с разрешением RuntimePermission("getProtectionDomain"), чтобы убедиться, что получение ProtectionDomain разрешено.

Возвращает:
ProtectionDomain этого класса
Выбрасывает:
SecurityException - если менеджер безопасности существует и его метод checkPermission не позволяет получить ProtectionDomain.
С:
1.2
См. также:
ProtectionDomain, SecurityManager.checkPermission(java.security.Permission), RuntimePermission

desiredAssertionStatus

public boolean desiredAssertionStatus()

Возвращает статус утверждения, который был бы назначен этому классу, если бы он был инициализирован в момент вызова этого метода. Если для этого класса был установлен статус утверждения, будет возвращён последний установленный статус; в противном случае, если для этого класса установлен статус утверждения по умолчанию в пакете, возвращается последний установленный статус для самого специфичного соответствующего статуса утверждения по умолчанию в пакете; в противном случае, если этот класс не является системным классом (т.е. имеет загрузчик классов), возвращается статус утверждения по умолчанию его загрузчика классов; в противном случае, возвращается системный статус утверждения по умолчанию.

Многим программистам этот метод не понадобится; он предоставляется для удобства самого JRE. (Он позволяет классу определить в момент инициализации, следует ли включать утверждения.) Обратите внимание, что этот метод не гарантирует возвращения фактического статуса утверждения, который был (или будет) связан со специфицированным классом в момент (или будущем) инициализации.

Возвращает:
желаемый статус утверждения указанного класса.
С:
1.4
См. также:
ClassLoader.setClassAssertionStatus(java.lang.String, boolean), ClassLoader.setPackageAssertionStatus(java.lang.String, boolean), ClassLoader.setDefaultAssertionStatus(boolean)

isEnum

public boolean isEnum()

Возвращает true, только если этот класс был объявлен как перечисление в исходном коде.

Возвращает:
true, только если этот класс был объявлен как перечисление в исходном коде
С:
1.5

getEnumConstants

public T[] getEnumConstants()

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

Возвращает:
массив, содержащий значения, составляющие класс перечисления, представленный этим объектом Class в порядке их объявления, или null, если этот объект Class не представляет тип перечисления
С:
1.5

cast

public T cast(Object obj)

Преобразует объект к классу или интерфейсу, представленному этим объектом Class.

Параметры:
obj - объект, подлежащий преобразованию
Возвращает:
объект после преобразования или null, если obj равен null
Выбрасывает:
ClassCastException - если объект не равен null и не может быть приведён к типу T.
С:
1.5

asSubclass

public <U> Class<? extends U> asSubclass(Class<U> clazz)

Преобразует этот объект Class к представлению подкласса класса, представленного указанным объектом класса. Проверяет, что преобразование выполняется корректно, и выбрасывает ClassCastException, если это не так. Если этот метод выполняется успешно, он всегда возвращает ссылку на этот объект класса.

Этот метод полезен, когда клиенту нужно "сузить" тип объекта Class для передачи его в API, который ограничивает Class объекты, которые он готов принимать. Преобразование привело бы к предупреждению при компиляции, так как корректность преобразования нельзя проверить во время выполнения (потому что дженерики реализуются стиранием).

Параметры типа:
U - тип, к которому требуется преобразовать этот объект класса
Параметры:
clazz - класс типа, к которому нужно преобразовать этот объект класса
Возвращает:
этот объект Class, преобразованный в представление подкласса указанного объекта класса.
Выбрасывает:
ClassCastException - если этот объект Class не представляет подкласс указанного класса (здесь "подкласс" включает сам класс).
С:
1.5

getAnnotation

public <A extends Annotation> A getAnnotation(Class<A> annotationClass)

Описание скопировано из интерфейса: AnnotatedElement

Возвращает аннотацию этого элемента для указанного типа, если такая аннотация присутствует, иначе null.

Определяется:
getAnnotation в интерфейсе AnnotatedElement
Параметры типа:
A - тип аннотации, для запроса и возврата, если присутствует
Параметры:
annotationClass - объект Class, соответствующий типу аннотации
Возвращает:
аннотация этого элемента для указанного типа аннотации, если присутствует на этом элементе, иначе null
Выбрасывает:
NullPointerException - если указанный класс аннотации равен null
С:
1.5

isAnnotationPresent

public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)

Возвращает true, если аннотация для указанного типа присутствует на этом элементе, иначе false. Этот метод предназначен в основном для удобного доступа к аннотациям-меткам.

Значение истинности, возвращаемое этим методом, эквивалентно: getAnnotation(annotationClass) != null

Тело метода по умолчанию указано в коде выше.

Указано в:
isAnnotationPresent в интерфейсе AnnotatedElement
Параметры:
annotationClass - объект Class, соответствующий типу аннотации
Возвращает:
true, если аннотация указанного типа присутствует на этом элементе, иначе false
Исключения:
NullPointerException - если переданный класс аннотации равен null
С момента:
1.5

getAnnotationsByType

public <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationClass)

Описание скопировано из интерфейса: AnnotatedElement

Возвращает аннотации, связанные с этим элементом. Если аннотаций связанных с этим элементом нет, возвращается массив длины 0. Различие между этим методом и AnnotatedElement.getAnnotation(Class) заключается в том, что этот метод определяет, является ли его аргумент повторяющимся типом аннотации (JLS 9.6), и в случае положительного результата пытается найти одну или несколько аннотаций этого типа, «просматривая» контейнерную аннотацию. Вызывающий метод свободен изменять возвращаемый массив; это не повлияет на массивы, возвращаемые другим вызывающим методам.

Указано в:
getAnnotationsByType в интерфейсе AnnotatedElement
Параметры типа:
A - тип аннотации, для которого необходимо выполнить запрос и вернуть ее, если она присутствует
Параметры:
annotationClass - объект Class, соответствующий типу аннотации
Возвращает:
все аннотации этого элемента для указанного типа аннотации, если они связаны с этим элементом, иначе массив длины ноль
Исключения:
NullPointerException - если переданный класс аннотации равен null
С момента:
1.8

getAnnotations

public Annotation[] getAnnotations()

Описание скопировано из интерфейса: AnnotatedElement

Возвращает аннотации, присутствующие на этом элементе. Если аннотаций присутствующих на этом элементе нет, возвращается массив длины 0. Вызывающий метод свободен изменять возвращаемый массив; это не повлияет на массивы, возвращаемые другим вызывающим методам.

Указано в:
getAnnotations в интерфейсе AnnotatedElement
Возвращает:
аннотации, присутствующие на этом элементе
С момента:
1.5

getDeclaredAnnotation

public <A extends Annotation> A getDeclaredAnnotation(Class<A> annotationClass)

Описание скопировано из интерфейса: AnnotatedElement

Возвращает аннотацию этого элемента для указанного типа, если такая аннотация непосредственно присутствует, иначе null. Этот метод игнорирует унаследованные аннотации. (Возвращает null, если аннотации непосредственно не присутствуют на этом элементе.)

Указано в:
getDeclaredAnnotation в интерфейсе AnnotatedElement
Параметры типа:
A - тип аннотации, для которого необходимо выполнить запрос и вернуть ее, если она непосредственно присутствует
Параметры:
annotationClass - объект Class, соответствующий типу аннотации
Возвращает:
аннотация этого элемента для указанного типа аннотации, если она непосредственно присутствует на этом элементе, иначе null
Исключения:
NullPointerException - если переданный класс аннотации равен null
С момента:
1.8

getDeclaredAnnotationsByType

public <A extends Annotation> A[] getDeclaredAnnotationsByType(Class<A> annotationClass)

Описание скопировано из интерфейса: AnnotatedElement

Возвращает аннотацию(и) этого элемента для указанного типа, если такие аннотации непосредственно присутствуют или косвенно присутствуют. Этот метод игнорирует унаследованные аннотации. Если указанные аннотации не присутствуют непосредственно или косвенно на этом элементе, возвращается массив длины 0. Различие между этим методом и AnnotatedElement.getDeclaredAnnotation(Class) заключается в том, что этот метод определяет, является ли его аргумент повторяющимся типом аннотации (JLS 9.6), и в случае положительного результата пытается найти одну или несколько аннотаций этого типа, «просматривая» контейнерную аннотацию, если она присутствует. Вызывающий метод свободен изменять возвращаемый массив; это не повлияет на массивы, возвращаемые другим вызывающим методам.

Указано в:
getDeclaredAnnotationsByType в интерфейсе AnnotatedElement
Параметры типа:
A - тип аннотации, для которого необходимо выполнить запрос и вернуть ее, если она присутствует непосредственно или косвенно
Параметры:
annotationClass - объект Class, соответствующий типу аннотации
Возвращает:
все аннотации этого элемента для указанного типа аннотации, если они присутствуют непосредственно или косвенно на этом элементе, иначе массив длины ноль
Исключения:
NullPointerException - если переданный класс аннотации равен null
С момента:
1.8

getDeclaredAnnotations

public Annotation[] getDeclaredAnnotations()

Описание скопировано из интерфейса: AnnotatedElement

Возвращает аннотации, непосредственно присутствующие на этом элементе. Этот метод игнорирует унаследованные аннотации. Если аннотации непосредственно не присутствуют на этом элементе, возвращается массив длины 0. Вызывающий метод свободен изменять возвращаемый массив; это не повлияет на массивы, возвращаемые другим вызывающим методам.

Указано в:
getDeclaredAnnotations в интерфейсе AnnotatedElement
Возвращает:
аннотации, непосредственно присутствующие на этом элементе
С момента:
1.5

getAnnotatedSuperclass

public AnnotatedType getAnnotatedSuperclass()

Возвращает объект AnnotatedType, представляющий использование типа для указания суперкласса сущности, представленной этим объектом Class. (Использование типа Foo для указания суперкласса в '... extends Foo' отличается от объявления типа Foo.)

Если этот объект Class представляет тип, объявление которого не явно указывает аннотированный суперкласс, то возвращаемое значение — объект AnnotatedType, представляющий элемент без аннотаций.

Если этот объект Class представляет либо класс Object, тип интерфейса, тип массива, примитивный тип или void, возвращаемое значение — null.

Возвращает:
объект, представляющий суперкласс
С момента:
1.8

getAnnotatedInterfaces

public AnnotatedType[] getAnnotatedInterfaces()

Возвращает массив объектов AnnotatedType, представляющих использование типов для указания суперинтерфейсов сущности, представленной этим объектом Class. (Использование типа Foo для указания суперинтерфейса в '... implements Foo' отличается от объявления типа Foo.)

Если этот объект Class представляет класс, возвращаемое значение — массив, содержащий объекты, представляющие использование типов интерфейсов для указания интерфейсов, реализуемых классом. Порядок объектов в массиве соответствует порядку типов интерфейсов, используемых в предложении 'implements' объявления этого объекта Class.

Если этот объект Class представляет интерфейс, возвращаемое значение — массив, содержащий объекты, представляющие использование типов интерфейсов для указания интерфейсов, непосредственно расширяемых интерфейсом. Порядок объектов в массиве соответствует порядку типов интерфейсов, используемых в предложении 'extends' объявления этого объекта Class.

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

Если этот объект Class представляет либо класс Object, тип массива, примитивный тип или void, возвращаемое значение — массив длины 0.

Возвращает:
массив, представляющий суперинтерфейсы
С момента:
1.8

getNestHost

public Class<?> getNestHost()

Возвращает родительский элемент вложенности (вложенности), к которой принадлежит класс или интерфейс, представленный этим объектом Class. Каждый класс и интерфейс являются членом ровно одного элемента вложенности. Класс или интерфейс, не зафиксированный как член вложенности, принадлежит вложенности, состоящей только из него самого, и является хозяином вложенности.

Каждый из объектов Class, представляющих типы массивов, примитивные типы и void, возвращает this, чтобы указать, что представленная сущность принадлежит вложенности, состоящей только из нее самой, и является хозяином вложенности.

Если при доступе к родительскому элементу вложенности возникает ошибка связи, или если этот класс или интерфейс не перечислен как член вложенности родительским элементом, считается, что он принадлежит к своей собственной вложенности, и возвращается this в качестве родителя.

Примечание API:
Файл class версии 55.0 или выше может записывать родителя вложенности, к которой он принадлежит, используя атрибут NestHost (JVMS 4.7.28). Кроме того, файл class версии 55.0 или выше может действовать как родитель вложенности, перечисляя других членов вложенности с помощью атрибута NestMembers (JVMS 4.7.29). Файл class версии 54.0 или ниже не использует эти атрибуты.
Возвращает:
родитель вложенности этого класса или интерфейса
Исключения:
SecurityException - Если возвращаемый класс не является текущим классом, и если присутствует менеджер безопасности s, а загрузчик классов вызывающего метода не совпадает с загрузчиком классов возвращаемого класса или не является его предком, и вызов s.checkPackageAccess() запрещает доступ к пакету возвращаемого класса
С момента:
11

isNestmateOf

public boolean isNestmateOf(Class<?> c)

Определяет, является ли заданный Class соседом по вложенности класса или интерфейса, представленного этим объектом Class. Два класса или интерфейса являются соседями по вложенности, если у них есть один и тот же родитель вложенности.

Параметры:
c - класс для проверки
Возвращает:
true, если этот класс и c являются членами одной и той же вложенности; и false в противном случае.
С момента:
11

getNestMembers

public Class<?>[] getNestMembers()

Возвращает массив, содержащий объекты Class, представляющие все классы и интерфейсы, являющиеся членами вложенности, к которой принадлежит класс или интерфейс, представленный этим объектом Class. Хост вложенности этой вложенности — это элемент с индексом ноль в массиве. Последующие элементы представляют любые классы или интерфейсы, которые записаны хостом вложенности как члены вложенности; порядок таких элементов не определен. Повторения допускаются. Если хост вложенности данной вложенности не перечисляет никаких членов, то массив содержит один элемент, содержащий this.

Каждый из объектов Class, представляющих типы массивов, примитивные типы и void, возвращает массив, содержащий только this.

Этот метод проверяет, что каждый класс или интерфейс, записанный как член вложенности хостом вложенности, записывает сам себя как член этой же вложенности. Любые исключения, возникающие во время этой проверки, повторно выбрасываются этим методом.

Возвращает:
массив всех классов и интерфейсов в той же вложенности, что и этот класс
Исключение:
LinkageError — если возникла проблема с загрузкой или проверкой члена вложенности или его хоста
SecurityException — если какой-либо возвращаемый класс не является текущим классом, и если присутствует менеджер безопасности, s, и загрузчик классов вызывающего объекта не совпадает с загрузчиком классов этого возвращаемого класса или не является его предком, и вызов s.checkPackageAccess() запрещает доступ к пакету этого возвращаемого класса
С:
11
См. также:
getNestHost()

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html

Spec-Zone .ru
спецификации, руководства, описания, API