Класс 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) Преобразует этот |
T |
cast(Object obj) Преобразует объект к классу или интерфейсу, представленному этим |
boolean |
desiredAssertionStatus() Возвращает статус проверки, который был бы назначен этому классу, если бы он был инициализирован в момент вызова этого метода. |
static Class<?> |
forName(String className) Возвращает |
static Class<?> |
forName(String name,
boolean initialize,
ClassLoader loader) Возвращает |
AnnotatedType[] |
getAnnotatedInterfaces() Возвращает массив |
AnnotatedType |
getAnnotatedSuperclass() Возвращает |
<A extends Annotation> |
getAnnotation(Class<A> annotationClass) Возвращает аннотацию этого элемента для указанного типа, если такая аннотация имеется, в противном случае null. |
Annotation[] |
getAnnotations() Возвращает аннотации, которые имеются на этом элементе. |
<A extends Annotation> |
getAnnotationsByType(Class<A> annotationClass) Возвращает аннотации, которые связаны с этим элементом. |
String |
getCanonicalName() Возвращает каноническое имя базового класса, как определено в спецификации языка Java. |
Class<?>[] |
getClasses() Возвращает массив |
ClassLoader |
getClassLoader() Возвращает загрузчик классов для класса. |
Class<?> |
getComponentType() Возвращает |
Constructor<T> |
getConstructor(Class<?>... parameterTypes) Возвращает |
Constructor<?>[] |
getConstructors() Возвращает массив |
<A extends Annotation> |
getDeclaredAnnotation(Class<A> annotationClass) Возвращает аннотацию этого элемента для указанного типа, если такая аннотация непосредственно присутствует, в противном случае null. |
Annotation[] |
getDeclaredAnnotations() Возвращает аннотации, которые непосредственно присутствуют на этом элементе. |
<A extends Annotation> |
getDeclaredAnnotationsByType(Class<A> annotationClass) Возвращает аннотацию(и) этого элемента для указанного типа, если такие аннотации непосредственно присутствуют или косвенно присутствуют. |
Class<?>[] |
getDeclaredClasses() Возвращает массив |
Constructor<T> |
getDeclaredConstructor(Class<?>... parameterTypes) Возвращает |
Constructor<?>[] |
getDeclaredConstructors() Возвращает массив |
Field |
getDeclaredField(String name) Возвращает |
Field[] |
getDeclaredFields() Возвращает массив |
Method |
getDeclaredMethod(String name,
Class<?>... parameterTypes) Возвращает |
Method[] |
getDeclaredMethods() Возвращает массив |
Class<?> |
getDeclaringClass() Если класс или интерфейс, представленный этим |
Class<?> |
getEnclosingClass() Возвращает ближайший окружающий класс базового класса. |
Constructor<?> |
getEnclosingConstructor() Если этот |
Method |
getEnclosingMethod() Если этот |
T[] |
getEnumConstants() Возвращает элементы этого класса перечисления или null, если этот объект Class не представляет тип перечисления. |
Field |
getField(String name) Возвращает |
Field[] |
getFields() Возвращает массив |
Type[] |
getGenericInterfaces() Возвращает |
Type |
getGenericSuperclass() Возвращает |
Class<?>[] |
getInterfaces() Определяет интерфейсы, реализуемые классом или интерфейсом, представленным этим объектом. |
Method |
getMethod(String name,
Class<?>... parameterTypes) Возвращает |
Method[] |
getMethods() Возвращает массив |
int |
getModifiers() Возвращает модификаторы языка Java для этого класса или интерфейса, закодированные в целое число. |
String |
getName() Возвращает имя сущности (класс, интерфейс, класс массива, примитивный тип или void), представленной этим |
Package |
getPackage() Возвращает пакет для этого класса. |
ProtectionDomain |
getProtectionDomain() Возвращает |
URL |
getResource(String name) Находит ресурс с заданным именем. |
InputStream |
getResourceAsStream(String name) Находит ресурс с заданным именем. |
Object[] |
getSigners() Возвращает подписывающие субъекты этого класса. |
String |
getSimpleName() Возвращает простое имя базового класса, заданное в исходном коде. |
Class<? super T> |
getSuperclass() Возвращает |
String |
getTypeName() Возвращает информативную строку для имени этого типа. |
TypeVariable<Class<T>>[] |
getTypeParameters() Возвращает массив |
boolean |
isAnnotation() Возвращает true, если этот |
boolean |
isAnnotationPresent(Class<? extends Annotation> annotationClass) Возвращает true, если для указанного типа существует аннотация на этом элементе, иначе false. |
boolean |
isAnonymousClass() Возвращает |
boolean |
isArray() Определяет, представляет ли этот объект |
boolean |
isAssignableFrom(Class<?> cls) Определяет, является ли класс или интерфейс, представленный этим объектом |
boolean |
isEnum() Возвращает true, если и только если этот класс был объявлен как перечисление в исходном коде. |
boolean |
isInstance(Object obj) Определяет, является ли указанный |
boolean |
isInterface() Определяет, представляет ли указанный объект |
boolean |
isLocalClass() Возвращает |
boolean |
isMemberClass() Возвращает |
boolean |
isPrimitive() Определяет, представляет ли указанный объект |
boolean |
isSynthetic() Возвращает |
T |
newInstance() Создает новый экземпляр класса, представленного этим объектом |
String |
toGenericString() Возвращает строку, описывающую этот |
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».
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 — класс или интерфейс, представленный этим объектом:
- Если C объявляет общедоступное поле с указанным именем, это поле будет отражено.
- Если поле не было найдено на шаге 1, этот алгоритм рекурсивно применяется к каждому непосредственному суперинтерфейсу C. Непосредственные суперинтерфейсы проверяются в порядке их объявления.
- Если поле не было найдено на шагах 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 — класс или интерфейс, представленный этим объектом:
- C проверяется на наличие соответствующего метода, как определено ниже. Если соответствующий метод найден, он отражается.
- Если соответствующий метод не найден на шаге 1, то:
- Если C — класс, отличный от
Object, этот алгоритм вызывается рекурсивно для суперкласса C. - Если C — класс
Objectили интерфейс, то суперинтерфейсы C (если таковые имеются) проверяются на наличие соответствующего метода. Если такой метод найден, он отражается.
- Если 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.