Spec-Zone.ru › OpenJDK 8

Класс Class<T>

  • java.lang.Object
    • java.lang.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 для вывода имени класса объекта:

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());
С:
JDK1.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(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 для этого класса или интерфейса, закодированные в целое число.

String getName()

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

Package getPackage()

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

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 isPrimitive()

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

boolean isSynthetic()

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

T newInstance()

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

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».

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, класс загружается через загрузчик базовых классов. Класс инициализируется только в том случае, если параметр 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. Обратите внимание, что этот метод не проверяет, доступен ли запрашиваемый класс своему вызывающему объекту.

Если loader равен null, и присутствует менеджер безопасности, и загрузчик классов вызывающего объекта не равен null, то этот метод вызывает метод checkPermission менеджера безопасности с разрешением RuntimePermission("getClassLoader") , чтобы убедиться, что доступ к загрузчику базовых классов разрешен.

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

newInstance

public T newInstance()
              throws InstantiationException,
                     IllegalAccessException

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

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

Возвращает:
новый экземпляр класса, представленного этим объектом.
Издает:
IllegalAccessException - если класс или его конструктор nullary недоступны.
InstantiationException - если этот Class представляет абстрактный класс, интерфейс, класс массива, примитивный тип или void; или если у класса нет конструктора nullary; или если создание экземпляра завершается неудачно по какой-либо другой причине.
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.

Параметры:
obj - проверяемый объект
Возвращает:
true, если obj является экземпляром этого класса
С:
JDK1.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 , для получения подробностей.

Параметры:
cls - объект Class для проверки
Возвращает:
значение boolean , указывающее, могут ли объекты типа cls быть назначены объектам этого класса
Издает:
NullPointerException - если указанный параметр Class равен null.
С:
JDK1.1

isInterface

public boolean isInterface()

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

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

isArray

public boolean isArray()

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

Возвращает:
true , если этот объект представляет класс массива; false в противном случае.
С:
JDK1.1

isPrimitive

public boolean isPrimitive()

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

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

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

Возвращает:
true тогда и только тогда, когда этот класс представляет примитивный тип
С тех пор:
JDK1.1
См. также:
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, так как все типы аннотаций также являются интерфейсами.

Возвращает:
true если этот объект класса представляет тип аннотации; false в противном случае
С тех пор:
1.5

isSynthetic

public boolean isSynthetic()

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

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

getName

public String getName()

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

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

Если этот объект класса представляет примитивный тип или void, возвращаемое имя равно ключевому слову языка 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"
Возвращает:
имя класса или интерфейса, представленного этим объектом.

getClassLoader

public ClassLoader getClassLoader()

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

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

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

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

getTypeParameters

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

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

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

getSuperclass

public Class<? super T> getSuperclass()

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

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

getGenericSuperclass

public Type getGenericSuperclass()

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

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

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

getPackage

public Package getPackage()

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

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

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

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()

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

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

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

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

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

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

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

getComponentType

public Class<?> getComponentType()

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

Возвращает:
Class, представляющий тип компонента этого класса, если этот класс является массивом
С:
JDK1.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, представляющий модификаторы для этого класса
С:
JDK1.1
См. также:
Modifier

getSigners

public Object[] getSigners()

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

Возвращает:
подписывающие лица этого класса или null, если подписывающих лиц нет. В частности, этот метод возвращает null, если этот объект представляет примитивный тип или void.
С:
JDK1.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() отказывает доступ к пакету класса-объявителя
С:
JDK1.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() запрещает доступ к пакету этого класса.
С момента:
JDK1.1

getFields

public Field[] getFields()
                  throws SecurityException

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

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

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

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

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

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

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

getMethods

public Method[] getMethods()
                    throws SecurityException

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

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

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

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

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

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

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

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

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

getConstructors

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

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

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

getField

public Field getField(String name)
               throws NoSuchFieldException,
                      SecurityException

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

Поле для отражения определяется алгоритмом, который следует. Пусть 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() запрещает доступ к пакету этого класса.
С момента:
JDK1.1

getMethod

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

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

Если name равно "<init>" или "<clinit>", генерируется NoSuchMethodException . В противном случае метод для отражения определяется алгоритмом, который следует. Пусть C — класс или интерфейс, представленный этим объектом:

  1. C проверяется на наличие соответствующего метода, как определено ниже. Если соответствующий метод найден, он отражается.
  2. Если соответствующий метод не найден на шаге 1, то:
    1. Если C — класс, отличный от Object, этот алгоритм вызывается рекурсивно для суперкласса C.
    2. Если C — класс Object или интерфейс, то суперинтерфейсы C (если таковые имеются) проверяются на наличие соответствующего метода. Если такой метод найден, он отражается.

Для поиска соответствующего метода в классе или интерфейсе C: Если C объявляет ровно один общедоступный метод с указанным именем и точно такими же формальными типами параметров, это отражаемый метод. Если найдено более одного такого метода в C, и один из этих методов имеет тип возвращаемого значения, более специфичный, чем любой другой, то отражается этот метод; в противном случае выбирается произвольный из методов.

Обратите внимание, что в классе может быть более одного соответствующего метода, потому что, хотя язык Java запрещает классу объявлять несколько методов с одинаковой сигнатурой, но разными типами возвращаемых значений, виртуальная машина Java этого не делает. Эта повышенная гибкость в виртуальной машине может быть использована для реализации различных функций языка. Например, ковариативные возвращаемые значения могут быть реализованы с помощью мостов-методов; у моста-метода и метода, переопределяемого, была бы одинаковая подпись, но разные типы возвращаемых значений.

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

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

Параметры:
name - имя метода
parameterTypes - список параметров
Возвращает:
объект Method, соответствующий указанному name и parameterTypes.
Исключение:
NoSuchMethodException - если метод с указанным именем не найден или если имя равно "<init>" или "<clinit>".
NullPointerException - если name равно null
SecurityException - Если присутствует менеджер безопасности, s, и загрузчик класса вызывающего кода не совпадает с загрузчиком класса текущего класса, или не является его предком, и вызов s.checkPackageAccess() запрещает доступ к пакету текущего класса.
С:
JDK1.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() запрещает доступ к пакету текущего класса.
С:
JDK1.1

getDeclaredClasses

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

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

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

getDeclaredFields

public Field[] getDeclaredFields()
                          throws SecurityException

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

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

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

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

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

getDeclaredMethods

public Method[] getDeclaredMethods()
                            throws SecurityException

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

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

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

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

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

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

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

getDeclaredConstructors

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

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

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

Возвращает:
массив объектов Constructor , представляющих все объявленные конструкторы этого класса
Исключение:
SecurityException - Если присутствует менеджер безопасности, s, и выполняются следующие условия:
  • загрузчик класса вызывающего кода не совпадает с загрузчиком класса текущего класса и вызов s.checkPermission с RuntimePermission("accessDeclaredMembers") запрещает доступ к объявленным конструкторам внутри этого класса
  • загрузчик класса вызывающего кода не совпадает с загрузчиком класса текущего класса, или не является его предком, и вызов s.checkPackageAccess() запрещает доступ к пакету этого класса
С:
JDK1.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() запрещает доступ к пакету этого класса
С:
JDK1.1

getDeclaredMethod

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

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

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

Параметры:
name — имя метода
parameterTypes — массив параметров
Возвращает:
объект Method для метода этого класса, соответствующего указанному имени и параметрам
Исключения:
NoSuchMethodException — если соответствующий метод не найден.
NullPointerException — если name равно null
SecurityException — если присутствует менеджер безопасности s и выполняются любые из следующих условий:
  • загрузчик классов вызывающего объекта не совпадает с загрузчиком классов этого класса, и вызов метода s.checkPermission с RuntimePermission("accessDeclaredMembers") отказывает доступ к объявленному методу
  • загрузчик классов вызывающего объекта не совпадает и не является предком загрузчика классов текущего класса, и вызов метода s.checkPackageAccess() отказывает доступ к пакету этого класса
С:
JDK1.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() отказывает доступ к пакету этого класса
С:
JDK1.1

getResourceAsStream

public InputStream getResourceAsStream(String name)

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

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

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

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

Параметры:
name — имя искомого ресурса
Возвращает:
объект InputStream или null, если ресурс с таким именем не найден
Исключения:
NullPointerException — Если name равно null
С:
JDK1.1

getResource

public URL getResource(String name)

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

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

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

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

Параметры:
name — имя искомого ресурса
Возвращает:
объект URL или null, если ресурс с таким именем не найден
С:
JDK1.1

getProtectionDomain

public ProtectionDomain getProtectionDomain()

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

Возвращает:
область защиты этого класса
Исключения:
SecurityException — если менеджер безопасности существует и его метод checkPermission не позволяет получить область защиты.
С:
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

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API