Конструктор класса<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, представляющих аннотации формальных параметров в порядке объявления для 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
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 для этого отражённого объекта на указанное значение boolean. Значение true указывает, что отражённый объект должен подавлять проверки управления доступом языка Java, когда он используется. Значение false указывает, что отражённый объект должен обеспечивать проверки управления доступом языка Java при использовании, с изменениями, отмеченными в описании класса. Этот метод может использоваться вызывающим классом C для включения доступа к member declaring class D, если выполняются следующие условия:
-
CиDнаходятся в одном модуле. - Член является
public, иDявляетсяpublicв пакете, который модуль, содержащийD,exportsкак минимум модулю, содержащемуC. - Член является
protectedstatic,Dявляетсяpublicв пакете, который модуль, содержащийD, экспортирует как минимум модулю, содержащемуC, иCявляется подклассомD. -
Dнаходится в пакете, который модуль, содержащийD,opensкак минимум модулю, содержащемуC. Все пакеты в безымянных и открытых модулях открыты для всех модулей, и поэтому этот метод всегда выполняется успешно, когдаDнаходится в безымянном или открытом модуле.
Этот метод может использоваться JNI-кодом без вызывающего класса в стеке для включения доступа к member declaring class D, если и только если:
- Член является
public, иDявляетсяpublicв пакете, который модуль, содержащийD,exportsбезусловно.
Этот метод не может использоваться для включения доступа к частным членам, членам с доступом по умолчанию (пакет), защищённым экземплярам членов или защищённым конструкторам, когда класс объявления находится в другом модуле, чем вызывающий, и пакет, содержащий класс объявления, не открыт для модуля вызывающего.
Этот метод не может использоваться для включения доступа к записи к неизменяемому конечному полю. Следующие поля не изменяются:
- статические конечные поля, объявленные в любом классе или интерфейсе
- конечные поля, объявленные в скрытом классе
- конечные поля, объявленные в записи
Флаг accessible, когда true подавляет проверки управления доступом языка Java, только для включения чтения доступа к этим неизменяемым конечным полям.
Будет брошено исключение 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 возвращается, если подлежащее исполнение не принимает параметров. Обратите внимание, что конструкторы некоторых внутренних классов могут иметь неявный параметр в дополнение к явно объявленным. Компактные конструкторы класса записи также могут иметь неявные параметры, но они являются особым случаем и, следовательно, рассматриваются так, как будто они были явно объявлены в источнике. Наконец, обратите внимание, что в качестве modeling artifact количество возвращаемых параметров может отличаться в зависимости от наличия или отсутствия информации о дженериках. Если информация о дженериках присутствует, параметры, явно присутствующие в источнике, или параметры компактных конструкторов класса записи будут возвращены. Обратите внимание, что параметры компактных конструкторов класса записи являются особым случаем, так как они не присутствуют явно в источнике, и его тип будет возвращён независимо от того, являются ли параметры явными или нет. Если информация о дженериках отсутствует, могут быть возвращены и неявные и синтетические параметры. Если формальный тип параметра является параметризованным типом, объект Type, возвращаемый для него, должен точно отражать фактические типы аргументов, используемые в исходном коде. Это утверждение также относится к параметрам компактных конструкторов класса записи, независимо от того, являются ли они явными или нет.
Если формальный тип параметра является переменной типа или параметризованным типом, он создаётся. В противном случае он разрешается.
- Overrides:
-
getGenericParameterTypesв классеExecutable - Returns:
- массив
Type, представляющих формальные типы параметров подлежащего исполнению, в порядке объявления - Throws:
-
GenericSignatureFormatError- если сигнатура дженерик-метода не соответствует формату, указанному в Спецификации виртуальной машины Java -
TypeNotPresentException- если любой из типов параметров подлежащего исполнению ссылается на не существующую декларацию типа -
MalformedParameterizedTypeException- если любой из типов параметров подлежащего исполнению ссылается на параметризованный тип, который не может быть проинициализирован по каким-либо причинам - Since:
- 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:
- массив Types, представляющих типы исключений, выбрасываемые подлежащим исполнением
- Throws:
-
GenericSignatureFormatError- если сигнатура дженерик-метода не соответствует формату, указанному в Спецификации виртуальной машины Java -
TypeNotPresentException- если частьthrowsподлежащего исполняемого выражения ссылается на не существующую декларацию типа -
MalformedParameterizedTypeException- если частьthrowsподлежащего исполняемого выражения ссылается на параметризованный тип, который не может быть проинициализирован по каким-либо причинам - Since:
- 1.5
equals
public boolean equals(Object obj)
Constructor с указанным объектом. Возвращает true, если объекты одинаковые. Два Constructor объекта одинаковы, если они были объявлены одним и тем же классом и имеют одинаковые формальные типы параметров.hashCode
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:
-
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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/reflect/Constructor.html