Конструктор класса<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 |
getDeclaringClass() |
Возвращает объект Class, представляющий класс, в котором объявлен конструктор, представленный этим объектом. |
Class<?>[] |
getExceptionTypes() |
Возвращает массив объектов Class, представляющих типы исключений, которые объявлены как выбрасываемые подлежащим исполняемым объектом, представленным этим объектом. |
Type[] |
getGenericExceptionTypes() |
Возвращает массив объектов Type, представляющих исключения, объявленные как выбрасываемые этим объектом. |
Type[] |
getGenericParameterTypes() |
Возвращает массив объектов Type, представляющих типы формальных параметров, в порядке объявления, исполняемого объекта, представленного этим объектом. |
int |
getModifiers() |
Возвращает модификаторы языка Java для исполняемого объекта, представленного этим объектом. |
String |
getName() |
Возвращает имя этого конструктора в виде строки. |
Annotation[][] |
getParameterAnnotations() |
Возвращает массив массивов Annotation, представляющих аннотации формальных параметров, в порядке объявления, исполняемого объекта, представленного этим объектом. |
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
accessFlags, 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иDpublicв пакете, который модуль, содержащийDexports, экспортирует как минимум в модуль, содержащийC. - Член является
protectedstatic,Dpublicв пакете, который модуль, содержащийDэкспортирует как минимум в модуль, содержащийC, иCявляется подклассомD. -
Dнаходится в пакете, который модуль, содержащийDopens, экспортирует как минимум в модуль, содержащийC. Все пакеты в безымянных и открытых модулях открыты для всех модулей, поэтому этот метод всегда выполняется успешно, когдаDнаходится в безымянном или открытом модуле.
Этот метод может быть использован кодом JNI без вызывающего класса в стеке для включения доступа к member объекта declaring class D только в том случае, если:
- Член является
publicиDpublicв пакете, который модуль, содержащийDexports, экспортирует безусловно.
Этот метод не может быть использован для включения доступа к частным членам, членам с доступом по умолчанию (пакет), защищённым экземплярам членов или защищённым конструкторам, когда класс объявления находится в другом модуле по сравнению с вызывающим и пакет, содержащий класс объявления, не открыт для модуля вызывающего.
Этот метод не может быть использован для включения доступа к неизменяемому конечному полю. Следующие поля являются неизменяемыми:
- статические конечные поля, объявленные в любом классе или интерфейсе
- конечные поля, объявленные в скрытом классе
- конечные поля, объявленные в записи
Флаг 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()
- Определено в:
-
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 разделе.- Specified by:
-
getExceptionTypesв классеExecutable - Returns:
- типы исключений, объявленные как выбрасываемые исполняемым кодом, представленным этим объектом
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 Constructor Modifiers
8.9.2 Enum Body Declarations
toGenericString
public String toGenericString()
Constructor, включая параметры типа. Строка отформатирована как модификаторы доступа конструктора, если таковые имеются, за которыми следует заключённый в угловые скобки, разделённый запятыми список параметров типа конструктора, если таковые имеются, включая информативные границы параметров типа, если таковые имеются, за которыми следует полное квалифицированное имя класса-объявителя, за которым следует заключённый в скобки, разделённый запятыми список типов формальных параметров конструктора. Если этот конструктор объявлен с переменным количеством аргументов, вместо обозначения последнего параметра как "Type[]", он обозначается как "Type...". Пробел используется для разделения модификаторов доступа друг от друга и от параметров типа или имени класса. Если параметров типа нет, список параметров типа опускается; если список параметров типа присутствует, список разделяется от имени класса пробелом. Если конструктор объявлен как выбрасывающий исключения, за списком параметров следует пробел, за которым следует слово "throws", за которым следует разделённый запятыми список типов обобщённых исключений. Возможные модификаторы конструкторов — это модификаторы доступа public, protected или private. Может быть только один из них или ни одного, если конструктор имеет доступ по умолчанию (пакетный).
- Specified by:
-
toGenericStringв классеExecutable - Returns:
- строка, описывающая этот
Constructor, включая параметры типа - See Java Language Specification:
- 8.8.3 Constructor Modifiers
8.9.2 Enum Body Declarations
- 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 Formal Parameters
- 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 The Form of a Binary
- See Java Virtual Machine Specification:
- 4.6 Methods
- Since:
- 1.5
- See Also:
getAnnotation
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
Обратите внимание, что любая аннотация, возвращаемая этим методом, является аннотацией объявления.
- Specified by:
-
getAnnotationв интерфейсеAnnotatedElement - Overrides:
-
getAnnotationв классеExecutable - Type Parameters:
-
T- тип аннотации, для которой выполняется запрос, и которая возвращается, если она присутствует - Parameters:
-
annotationClass- объект Class, соответствующий типу аннотации - Returns:
- аннотация элемента для указанного типа аннотации, если она присутствует в этом элементе, в противном случае null
- Throws:
-
NullPointerException- если заданный класс аннотации равен null - Since:
- 1.5
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()
Обратите внимание, что любые аннотации, возвращаемые этим методом, являются аннотациями объявления.
- Specified by:
-
getDeclaredAnnotationsв интерфейсеAnnotatedElement - Overrides:
-
getDeclaredAnnotationsв классеAccessibleObject - Returns:
- аннотации, непосредственно присутствующие на этом элементе
- Since:
- 1.5
getParameterAnnotations
public Annotation[][] getParameterAnnotations()
Annotation , представляющих аннотации формальных параметров, в порядке объявления, для Executable , представленного этим объектом. Синтетические и обязательные параметры (см. объяснение ниже), такие как внешний параметр "this" для конструктора внутреннего класса, будут представлены в возвращаемом массиве. Если у исполняемого элемента нет параметров (то есть нет формальных, синтетических и обязательных параметров), будет возвращен массив нулевой длины. Если у Executable есть один или несколько параметров, для каждого параметра без аннотаций возвращается вложенный массив нулевой длины. Объекты аннотаций, содержащиеся в возвращаемых массивах, сериализуемы. Вызывающий метод может свободно изменять возвращаемые массивы; это не повлияет на массивы, возвращаемые другим вызывающим методам. Компилятор может добавить дополнительные параметры, которые неявно объявлены в исходном коде («обязательные»), а также параметры, которые не объявлены ни неявно, ни явно в исходном коде («синтетические»), в список параметров для метода. См. Parameter для получения дополнительной информации. Обратите внимание, что любые аннотации, возвращаемые этим методом, являются аннотациями объявления.
- Specified by:
-
getParameterAnnotationsв классеExecutable - Returns:
- массив массивов, представляющих аннотации формальных и неявных параметров, в порядке объявления, для исполняемого элемента, представленного этим объектом
- Since:
- 1.5
- See Also:
getAnnotatedReturnType
public AnnotatedType getAnnotatedReturnType()
AnnotatedType, который представляет использование типа для указания возвращаемого типа метода/конструктора, представленного этим объектом Executable. Если этот объект Executable представляет конструктор, объект
AnnotatedType представляет тип создаваемого объекта. Если этот объект Executable представляет метод, объект
AnnotatedType представляет использование типа для указания возвращаемого типа метода.- Specified by:
-
getAnnotatedReturnTypeв классеExecutable - Returns:
- объект, представляющий возвращаемый тип метода или конструктора, представленного этим объектом
Executable - Since:
- 1.8
getAnnotatedReceiverType
public AnnotatedType getAnnotatedReceiverType()
AnnotatedType, который представляет использование типа для указания типа получателя метода/конструктора, представленного этим объектом Executable . Тип получателя метода/конструктора доступен только в том случае, если метод/конструктор имеет параметр получателя (JLS 8.4.1). Если этот объект
Executable представляет экземплярный метод или представляет конструктор внутреннего члена класса, и метод/конструктор либо не имеет параметра получателя, либо имеет параметр получателя без аннотаций на его типе, то возвращаемое значение — объект AnnotatedType , представляющий элемент без аннотаций. Если этот объект Executable представляет статический метод или представляет конструктор верхнего уровня, статического члена, локального или анонимного класса, то возвращаемое значение равно null.- Overrides:
-
getAnnotatedReceiverTypeв классеExecutable - Returns:
- объект, представляющий тип получателя метода или конструктора, представленного этим объектом
Executableилиnull, если этот объектExecutableне может иметь параметр получателя - Since:
- 1.8
© 1993, 2023, 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/21/docs/api/java.base/java/lang/reflect/Constructor.html