Конструктор класса<T>
- Параметры типа:
-
T- класс, в котором объявлен конструктор
- Все реализованные интерфейсы:
-
AnnotatedElement,GenericDeclaration,Member
public final class Constructor<T> extends Executable
Constructor предоставляет информацию о и доступ к одному конструктору класса. Constructor допускает расширяющие преобразования при сопоставлении фактических параметров newInstance() с формальными параметрами базового конструктора, но генерирует IllegalArgumentException если произойдет сужающее преобразование.
- С тех пор:
- 1.1
- См. также:
Краткое описание полей
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Сравнивает этот Constructor с указанным объектом. |
AnnotatedType |
getAnnotatedReceiverType() |
Возвращает объект AnnotatedType, который представляет использование типа для указания типа получателя метода/конструктора, представленного этим объектом Executable. |
AnnotatedType |
getAnnotatedReturnType() |
Возвращает объект AnnotatedType, который представляет использование типа для указания типа возвращаемого значения метода/конструктора, представленного этим объектом Executable. |
<T extends Annotation> |
getAnnotation |
Возвращает аннотацию этого элемента для указанного типа, если такая аннотация присутствует, иначе null. |
Annotation[] |
getDeclaredAnnotations() |
Возвращает аннотации, которые непосредственно присутствуют на этом элементе. |
Class<T> |
getDeclaringClass() |
Возвращает объект Class, представляющий класс, объявляющий конструктор, представленный этим объектом. |
Class<?>[] |
getExceptionTypes() |
Возвращает массив объектов Class, которые представляют типы исключений, объявленных как выбрасываемые базовым исполняемым объектом, представленным этим объектом. |
Type[] |
getGenericExceptionTypes() |
Возвращает массив объектов Type , которые представляют исключения, объявленные как выбрасываемые этим объектом исполняемого кода. |
Type[] |
getGenericParameterTypes() |
Возвращает массив объектов Type , которые представляют формальные типы параметров, в порядке объявления, исполняемого кода, представленного этим объектом. |
int |
getModifiers() |
Возвращает модификаторы языка Java для исполняемого кода, представленного этим объектом. |
String |
getName() |
Возвращает имя этого конструктора в виде строки. |
Annotation[][] |
getParameterAnnotations() |
Возвращает массив массивов Annotation , которые представляют аннотации формальных параметров, в порядке объявления, Executable , представленного этим объектом. |
int |
getParameterCount() |
Возвращает количество формальных параметров (явных, неявных или отсутствие таковых) исполняемого кода, представленного этим объектом. |
Class<?>[] |
getParameterTypes() |
Возвращает массив объектов Class , которые представляют формальные типы параметров, в порядке объявления, исполняемого кода, представленного этим объектом. |
TypeVariable<Constructor<T>>[] |
getTypeParameters() |
Возвращает массив объектов TypeVariable , которые представляют переменные типа, объявленные обобщённым объявлением, представленным этим объектом GenericDeclaration , в порядке объявления. |
int |
hashCode() |
Возвращает хэш-код для этого Constructor. |
boolean |
isSynthetic() |
Возвращает true если этот исполняемый код является синтетической конструкцией; возвращает false в противном случае. |
boolean |
isVarArgs() |
Возвращает true если этот исполняемый код был объявлен для принятия переменного количества аргументов; возвращает false в противном случае. |
T |
newInstance |
Использует конструктор, представленный этим объектом Constructor , для создания и инициализации нового экземпляра класса, объявляющего конструктор, с указанными параметрами инициализации. |
void |
setAccessible |
Устанавливает флаг accessible для этого отражённого объекта в указанное булево значение. |
String |
toGenericString() |
Возвращает строку, описывающую этот Constructor, включая параметры типа. |
String |
toString() |
Возвращает строку, описывающую этот Constructor. |
Методы, объявленные в классе java.lang.reflect.Executable
getAnnotatedExceptionTypes, getAnnotatedParameterTypes, getAnnotationsByType, getParameters
Методы, объявленные в классе java.lang.reflect.AccessibleObject
canAccess, getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAccessible, isAnnotationPresent, setAccessible, trySetAccessible
Методы, объявленные в классе java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.lang.reflect.AnnotatedElement
getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent
Подробное описание методов
setAccessible
public void setAccessible(boolean flag)
accessible для этого отражённого объекта на указанное булево значение. Значение true указывает, что отражённый объект должен подавлять проверки управления доступом языка Java при его использовании. Значение false указывает, что отражённый объект должен применять проверки управления доступом языка Java при его использовании, с вариацией, отмеченной в описании класса. Этот метод может быть использован вызывающим объектом в классе C для разрешения доступа к member объекта declaring class D в следующих случаях:
-
CиDнаходятся в одном модуле. - Член является
public, аDнаходится в пакете, к которому модуль, содержащийDexportsэкспортирует по меньшей мере в модуль, содержащийC. - Член является
protectedstatic,Dнаходится в пакете, к которому модуль, содержащийDэкспортирует по меньшей мере в модуль, содержащийC, иCявляется подклассомD. -
Dнаходится в пакете, к которому модуль, содержащийDopensэкспортирует по меньшей мере в модуль, содержащийC. Все пакеты в безымянных и открытых модулях открыты для всех модулей, поэтому этот метод всегда выполняется успешно, когдаDнаходится в безымянном или открытом модуле.
Этот метод не может быть использован для разрешения доступа к приватным членам, членам с доступом по умолчанию (пакетному), защищённым экземплярам или защищённым конструкторам, когда класс объявляющий их находится в другом модуле, чем вызывающий, и пакет, содержащий объявляющий класс, не открыт для модуля вызывающего.
Этот метод не может быть использован для разрешения записи доступа к неизменяемому конечному полю. Следующие поля неизменяемы:
- статические конечные поля, объявленные в любом классе или интерфейсе
- конечные поля, объявленные в скрытом классе
- конечные поля, объявленные в записи
Флаг accessible при true подавляет проверки управления доступом языка Java, чтобы разрешить только чтение доступа к этим неизменяемым конечным полям.
Если есть менеджер безопасности, его метод checkPermission сначала вызывается с разрешением ReflectPermission("suppressAccessChecks").
Исключение SecurityException также возникает, если этот объект является Constructor объектом для класса Class и flag равно true.
- Overrides:
-
setAccessibleв классеAccessibleObject - Параметры:
-
flag- новое значение для флагаaccessible - Исключения:
-
InaccessibleObjectException- если доступ не может быть разрешен -
SecurityException- если запрос отклонен менеджером безопасности или это конструктор дляjava.lang.Class - См. также:
getDeclaringClass
public Class<T> getDeclaringClass()
Class, представляющий класс, который объявляет конструктор, представленный этим объектом.- Указано в:
-
getDeclaringClassв интерфейсеMember - Указано в:
-
getDeclaringClassв классеExecutable - Возвращает:
- объект, представляющий класс, объявляющий подлежащий член
getName
public String getName()
- Указано в:
-
getNameв интерфейсеMember - Указано в:
-
getNameв классеExecutable - Возвращает:
- простое имя подлежащего члена
getModifiers
public int getModifiers()
- Указано в:
-
getModifiersв интерфейсеMember - Указано в:
-
getModifiersв классеExecutable - Возвращает:
- модификаторы языка Java для исполняемого объекта, представленного этим объектом
- См. Спецификацию языка Java:
- 8.8.3 Модификаторы конструкторов
- См. также:
getTypeParameters
public TypeVariable<Constructor<T>>[] getTypeParameters()
TypeVariable, представляющих тип переменных, объявленных обобщённым объявлением, представленным этим объектом GenericDeclaration , в порядке объявления. Возвращает массив длиной 0, если подлежащее обобщённое объявление не объявляет ни одной переменной типа.- Указано в:
-
getTypeParametersв интерфейсеGenericDeclaration - Указано в:
-
getTypeParametersв классеExecutable - Возвращает:
- массив объектов
TypeVariable, представляющих переменные типов, объявленные этим обобщённым объявлением - Исключения:
-
GenericSignatureFormatError- если обобщённая сигнатура этого обобщённого объявления не соответствует формату, указанному в Спецификации виртуальной машины Java - С тех пор как:
- 1.5
getParameterTypes
public Class<?>[] getParameterTypes()
Class, представляющих формальные типы параметров в порядке объявления, исполняемого, представленного этим объектом. Возвращает массив длиной 0, если подлежащее исполняемое не принимает никаких параметров. Обратите внимание, что конструкторы некоторых внутренних классов могут иметь неявно объявленный параметр в дополнение к явно объявленным.- Указано в:
-
getParameterTypesв классеExecutable - Возвращает:
- типы параметров для исполняемого объекта, который представляет этот объект
getParameterCount
public int getParameterCount()
- Overrides:
-
getParameterCountв классеExecutable - Возвращает:
- Количество формальных параметров для исполняемого объекта, который представляет этот объект
- С тех пор как:
- 1.8
getGenericParameterTypes
public Type[] getGenericParameterTypes()
Type, представляющих формальные типы параметров в порядке объявления, исполняемого, представленного этим объектом. Массив длиной 0 возвращается, если подлежащее исполняемое не принимает никаких параметров. Обратите внимание, что конструкторы некоторых вложенных классов могут иметь неявно объявленный параметр в дополнение к явно объявленным. Также обратите внимание, что, как артефакт моделирования модели языка, количество возвращаемых параметров может отличаться в зависимости от наличия информации о дженериках. Если информация о дженериках есть, будут возвращены только параметры, явно присутствующие в исходном коде; если информация о дженериках отсутствует, могут быть возвращены также неявные и синтетические параметры. Если формальный тип параметра является параметризованным типом, объект Type , возвращённый для него, должен точно отражать фактические аргументы типов, используемые в исходном коде.
Если формальный тип параметра является переменной типа или параметризованным типом, он создаётся. В противном случае он разрешается.
- Overrides:
-
getGenericParameterTypesв классеExecutable - Возвращает:
- массив объектов
Type, представляющих формальные типы параметров подлежащего исполняемого объекта в порядке объявления - Исключения:
-
GenericSignatureFormatError- если обобщённая сигнатура метода не соответствует формату, указанному в Спецификации виртуальной машины Java -
TypeNotPresentException- если любой из типов параметров подлежащего исполняемого объекта ссылается на не существующее объявление типа -
MalformedParameterizedTypeException- если любой из типов параметров подлежащего исполняемого объекта ссылается на параметризованный тип, который не может быть проинициализирован по какой-либо причине - С тех пор как:
- 1.5
getExceptionTypes
public Class<?>[] getExceptionTypes()
Class, представляющих типы исключений, объявленные как выбрасываемые подлежащим исполняемым объектом, представленным этим объектом. Возвращает массив длиной 0, если исполняемый объект не объявляет исключения в его
throws разделе.- Указано в:
-
getExceptionTypesв классеExecutable - Возвращает:
- типы исключений, объявленные как выбрасываемые этим исполняемым объектом
getGenericExceptionTypes
public Type[] getGenericExceptionTypes()
Type, представляющих исключения, объявленные для выброса этим объектом исполняемого кода. Возвращает массив длиной 0, если подлежащий исполняемый код не объявляет исключений в своём throws разделе. Если тип исключения является переменной типа или параметризованным типом, он создаётся. В противном случае он разрешается.
- Overrides:
-
getGenericExceptionTypesв классеExecutable - Returns:
- массив типов, представляющих типы исключений, выбрасываемых подлежащим исполняемым кодом
- Throws:
-
GenericSignatureFormatError- если подпись обобщённого метода не соответствует формату, указанному в Спецификации виртуальной машины Java -
TypeNotPresentException- если разделthrowsподлежащего исполняемого кода ссылается на не существующее объявление типа -
MalformedParameterizedTypeException- если разделthrowsподлежащего исполняемого кода ссылается на параметризованный тип, который не может быть инициализирован по какой-либо причине - Since:
- 1.5
equals
public boolean equals(Object obj)
Constructor с заданным объектом. Возвращает true, если объекты идентичны. Два объекта Constructor идентичны, если они были объявлены одним и тем же классом и имеют одинаковые типы формальных параметров.- Overrides:
-
equalsв классеObject - Parameters:
-
obj- объект-ссылка для сравнения. - Returns:
-
true, если этот объект идентичен аргументу obj;falseв противном случае. - See Also:
hashCode
public int hashCode()
Constructor. Хэш-код совпадает с хэш-кодом имени декларирующего класса подлежащего конструктора.- Overrides:
-
hashCodeв классеObject - Returns:
- значение хэш-кода для этого объекта.
- See Also:
toString
public String toString()
Constructor. Строка форматируется как модификаторы доступа конструктора, если таковые имеются, за которыми следует полное квалифицированное имя декларирующего класса, за которым следует скобочная, разделённая запятыми последовательность типов формальных параметров конструктора. Например:
public java.util.HashMap(int,float)
Если для конструктора объявлено исключение, список параметров следует за пробелом, за которым следует слово "throws", за которым следует список типов выбрасываемых исключений, разделённых запятыми.
Единственные возможные модификаторы для конструкторов — это модификаторы доступа public, protected или private. Может присутствовать только один из них, или ни одного, если конструктор имеет доступ по умолчанию (пакетный).
- Overrides:
-
toStringв классеObject - Returns:
- строка, описывающая этот
Constructor - See Java Language Specification:
- 8.8.3 Конструкторные модификаторы
8.9.2 Объявления тела перечисления
toGenericString
public String toGenericString()
Constructor, включая параметры типа. Строка форматируется как модификаторы доступа конструктора, если таковые имеются, за которыми следует список параметров типа в угловых скобках, разделённых запятыми, если таковые имеются, включая информативные границы параметров типа, если таковые имеются, за которыми следует полное квалифицированное имя декларирующего класса, за которым следует скобочная, разделённая запятыми последовательность обобщённых формальных параметров конструктора. Если этот конструктор объявлен для работы с переменным числом аргументов, вместо обозначения последнего параметра как "Type[]", используется "Type...". Пробел используется для разделения модификаторов доступа друг от друга и от параметров типа или имени класса. Если параметров типа нет, список параметров типа опускается; если список параметров типа присутствует, список отделяется от имени класса пробелом. Если для конструктора объявлены исключения, список параметров следует за пробелом, за которым следует слово "throws", за которым следует список типов исключений, разделённых запятыми. Единственные возможные модификаторы для конструкторов — это модификаторы доступа public, protected или private. Может присутствовать только один из них, или ни одного, если конструктор имеет доступ по умолчанию (пакетный).
- Specified by:
-
toGenericStringв классеExecutable - Returns:
- строка, описывающая этот
Constructor, включая параметры типа - See Java Language Specification:
- 8.8.3 Конструкторные модификаторы
8.9.2 Объявления тела перечисления
- Since:
- 1.5
newInstance
public T newInstance(Object... initargs) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
Constructor, для создания и инициализации нового экземпляра декларируемого классом конструктора, с указанными параметрами инициализации. Индивидуальные параметры автоматически распаковываются для соответствия примитивным формальным параметрам, и как примитивные, так и ссылочные параметры подлежат преобразованиям вызова метода, если необходимо. Если число формальных параметров, требуемых подлежащим конструктором, равно 0, предоставленный массив initargs может иметь длину 0 или быть null.
Если декларируемый класс конструктора является внутренним классом в контексте нестатическом, первым аргументом конструктора должен быть внешний экземпляр; см. раздел 15.9.3 Спецификации языка Java.
Если необходимые проверки доступа и аргументов пройдены, а инициализация пройдёт, декларируемый класс конструктора инициализируется, если он ещё не был инициализирован.
Если конструктор завершается нормально, возвращает вновь созданный и инициализированный экземпляр.
- Parameters:
-
initargs- массив объектов, передаваемых в качестве аргументов вызову конструктора; значения примитивных типов упаковываются в оберточный объект соответствующего типа (например,floatвFloat) - Returns:
- новый объект, созданный путём вызова конструктора, представленного этим объектом
- Throws:
-
IllegalAccessException- если этот объектConstructorобеспечивает контроль доступа языка Java, и подлежащий конструктор недоступен. -
IllegalArgumentException- если количество фактических и формальных параметров отличается; если преобразование распаковки для примитивных аргументов терпит неудачу; или если после возможной распаковки значение параметра не может быть преобразовано в соответствующий тип формального параметра посредством преобразования вызова метода; если этот конструктор относится к классу перечисления. -
InstantiationException- если класс, декларирующий подлежащий конструктор, представляет собой абстрактный класс. -
InvocationTargetException- если подлежащий конструктор выбрасывает исключение. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, терпит неудачу.
isVarArgs
public boolean isVarArgs()
true , если этот исполняемый код был объявлен для работы с переменным числом аргументов; возвращает false в противном случае.- Overrides:
-
isVarArgsв классеExecutable - Returns:
-
true, если этот исполняемый код был объявлен для работы с переменным числом аргументов; возвращаетfalseв противном случае - See Java Language Specification:
- 8.4.1 Формальные параметры
- Since:
- 1.5
isSynthetic
public boolean isSynthetic()
true , если этот исполняемый код является синтетической конструкцией; возвращает false в противном случае.- Specified by:
-
isSyntheticв интерфейсеMember - Overrides:
-
isSyntheticв классеExecutable - Returns:
- true, если и только если этот исполняемый код является синтетической конструкцией, как определено в Спецификации языка Java.
- See Java Language Specification:
- 13.1 Форма бинарного файла
- See Java Virtual Machine Specification:
- 4.6 Методы
- Since:
- 1.5
- See Also:
getAnnotation
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
Обратите внимание, что любая аннотация, возвращаемая этим методом, является аннотацией объявления.
- Specified by:
-
getAnnotationin interfaceAnnotatedElement - Overrides:
-
getAnnotationin classExecutable - Type Parameters:
-
T- тип аннотации, для запроса и возврата, если она присутствует - Parameters:
-
annotationClass- объект Class, соответствующий типу аннотации - Returns:
- аннотация элемента для указанного типа аннотации, если она присутствует на этом элементе, в противном случае null
- Throws:
-
NullPointerException- если указанный класс аннотации равен null - Since:
- 1.5
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()
Обратите внимание, что любые аннотации, возвращаемые этим методом, являются аннотациями объявления.
- Specified by:
-
getDeclaredAnnotationsin interfaceAnnotatedElement - Overrides:
-
getDeclaredAnnotationsin classAccessibleObject - Returns:
- аннотации, непосредственно присутствующие на этом элементе
- Since:
- 1.5
getParameterAnnotations
public Annotation[][] getParameterAnnotations()
Annotations, представляющих аннотации формальных параметров, в порядке объявления, Executable , представленного этим объектом. Синтетические и предписанные параметры (см. объяснение ниже), такие как внешний параметр "this" для конструктора внутреннего класса, будут представлены в возвращаемом массиве. Если у исполняемого объекта нет параметров (т. е. нет формальных, синтетических и предписанных параметров), будет возвращен массив нулевой длины. Если у Executable есть один или несколько параметров, для каждого параметра без аннотаций возвращается вложенный массив длиной ноль. Объекты аннотаций, содержащиеся в возвращаемых массивах, сериализуемы. Вызывающий метод свободен изменять возвращаемые массивы; это не повлияет на массивы, возвращаемые другим вызывающим методам. Компилятор может добавить дополнительные параметры, которые неявно объявлены в исходном коде ("предписанные"), а также параметры, которые не являются ни неявно, ни явно объявленными в исходном коде ("синтетические"), в список параметров для метода. См. Parameter для получения дополнительной информации. Обратите внимание, что любые аннотации, возвращаемые этим методом, являются аннотациями объявления.
- Specified by:
-
getParameterAnnotationsin classExecutable - Returns:
- массив массивов, представляющих аннотации формальных и неявных параметров, в порядке объявления, исполняемого объекта, представленного этим объектом
- Since:
- 1.5
- See Also:
getAnnotatedReturnType
public AnnotatedType getAnnotatedReturnType()
AnnotatedType, представляющий использование типа для указания типа возвращаемого значения метода/конструктора, представленного этим объектом Executable. Если этот объект Executable представляет конструктор, объект
AnnotatedType представляет тип создаваемого объекта. Если этот объект Executable представляет метод, объект
AnnotatedType представляет использование типа для указания типа возвращаемого значения метода.- Specified by:
-
getAnnotatedReturnTypein classExecutable - Returns:
- объект, представляющий тип возвращаемого значения метода или конструктора, представленного этим объектом
Executable - Since:
- 1.8
getAnnotatedReceiverType
public AnnotatedType getAnnotatedReceiverType()
AnnotatedType, представляющий использование типа для указания типа получателя метода/конструктора, представленного этим объектом Executable . Тип получателя метода/конструктора доступен только в том случае, если у метода/конструктора есть параметр получателя (JLS 8.4.1). Если этот объект
Executable представляет метод экземпляра или представляет конструктор внутреннего класса-члена, и метод/конструктор либо не имеет параметра получателя, либо имеет параметр получателя без аннотаций на его типе, то возвращаемое значение является объектом AnnotatedType , представляющим элемент без аннотаций. Если этот объект Executable представляет статический метод или представляет конструктор верхнего уровня, статического члена, локального или анонимного класса, то возвращаемое значение равно null.- Overrides:
-
getAnnotatedReceiverTypein classExecutable - Returns:
- объект, представляющий тип получателя метода или конструктора, представленного этим объектом
Executableилиnullесли этот объектExecutableне может иметь параметр получателя - Since:
- 1.8
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/reflect/Constructor.html