Class Constructor<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. |
Методы, объявленные в классе Executable
accessFlags, getAnnotatedExceptionTypes, getAnnotatedParameterTypes, getAnnotationsByType, getParameters
Методы, объявленные в классе AccessibleObject
canAccess, getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAccessible, isAnnotationPresent, setAccessible, trySetAccessible
Методы, объявленные в интерфейсе 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находится в пакете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безусловно.
Этот метод нельзя использовать для предоставления доступа к закрытым членам, членам с доступом по умолчанию (на уровне пакета), защищённым нестатическим членам или защищённым конструкторам, если объявляющий класс находится в модуле, отличном от модуля вызывающего кода, а пакет, содержащий объявляющий класс, не открыт для модуля вызывающего кода.
Этот метод нельзя использовать для предоставления доступа на запись к немодифицируемому полю final. К немодифицируемым относятся следующие поля:
- поля static final, объявленные в любом классе или интерфейсе
- поля final, объявленные в скрытом классе
- поля final, объявленные в записи
Флаг accessible при значении true подавляет проверки управления доступом языка Java только для предоставления доступа на чтение этих немодифицируемых полей final.
Выбрасывается SecurityException, если этот объект является объектом Constructor для класса Class и flag имеет значение true.
- Переопределяет:
-
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 должен точно отражать фактические аргументы типа, использованные в исходном коде. Это требование также относится к параметрам компактных конструкторов класса-записи независимо от того, являются ли они неявно объявленными.
Если тип формального параметра является переменной типа или параметризованным типом, он создаётся. В противном случае он разрешается.
- Переопределяет:
-
getGenericParameterTypesв классеExecutable - Возвращает:
- массив объектов
Type, представляющих типы формальных параметров базового исполняемого элемента в порядке объявления - Исключения:
-
GenericSignatureFormatError— если обобщённая сигнатура метода не соответствует формату, заданному в Спецификации виртуальной машины Java -
TypeNotPresentException— если какой-либо тип параметра базового исполняемого элемента ссылается на несуществующее объявление типа -
MalformedParameterizedTypeException— если какой-либо тип параметра базового исполняемого элемента ссылается на параметризованный тип, который по какой-либо причине не может быть создан - Начиная с версии:
- 1.5
getExceptionTypes
public Class<?>[] getExceptionTypes()
Class, представляющих типы исключений, которые, согласно объявлению, может выбрасывать базовый исполняемый элемент, представленный этим объектом. Если в предложении
throws базового исполняемого элемента не объявлено исключений, возвращается массив длины 0.- Указано в:
-
getExceptionTypesв классеExecutable - Возвращает:
- типы исключений, объявленные как выбрасываемые исполняемым элементом, представленным этим объектом
getGenericExceptionTypes
public Type[] getGenericExceptionTypes()
Type, представляющих исключения, которые объявлены как выбрасываемые этим объектом исполняемого элемента. Если в предложении throws базового исполняемого элемента не объявлено исключений, возвращается массив длины 0. Если тип исключения является переменной типа или параметризованным типом, он создаётся. В противном случае он разрешается.
- Переопределяет:
-
getGenericExceptionTypesв классеExecutable - Возвращает:
- массив типов, представляющих типы исключений, выбрасываемых базовым исполняемым элементом
- Исключения:
-
GenericSignatureFormatError— если обобщённая сигнатура метода не соответствует формату, заданному в Спецификации виртуальной машины Java -
TypeNotPresentException— если предложениеthrowsбазового исполняемого элемента ссылается на несуществующее объявление типа -
MalformedParameterizedTypeException— если предложениеthrowsбазового исполняемого элемента ссылается на параметризованный тип, который по какой-либо причине не может быть создан - Начиная с версии:
- 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. Может присутствовать только один из них либо ни одного, если конструктор имеет доступ по умолчанию (на уровне пакета).
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строку с описанием этого объекта
Constructor - См. Спецификацию языка Java:
- 8.8.3 Модификаторы конструкторов
8.9.2 Объявления тела перечисления
toGenericString
public String toGenericString()
Constructor, включая параметры типов. Строка имеет следующий формат: модификаторы доступа конструктора, если они есть, затем заключённый в угловые скобки список параметров типов конструктора, разделённых запятыми, если они есть, включая информативные границы параметров типов, если они есть, затем полное имя объявляющего класса, а затем заключённый в круглые скобки список обобщённых формальных типов параметров конструктора, разделённых запятыми. Если конструктор объявлен принимающим переменное число аргументов, последний параметр обозначается не как «Type[]», а как «Type...». Для разделения модификаторов доступа между собой и от параметров типов или имени класса используется пробел. Если параметров типов нет, список параметров типов опускается; если список присутствует, он отделяется пробелом от имени класса. Если в объявлении конструктора указано, что он выбрасывает исключения, после списка параметров ставится пробел, затем слово «throws», а за ним — разделённый запятыми список обобщённых типов выбрасываемых исключений. Для конструкторов возможны только модификаторы доступа public, protected или private. Может присутствовать только один из них либо ни одного, если конструктор имеет доступ по умолчанию (на уровне пакета).
- Указано в:
-
toGenericStringв классеExecutable - Возвращает:
- строку с описанием этого объекта
Constructor, включая параметры типов - См. Спецификацию языка Java:
- 8.8.3 Модификаторы конструкторов
8.9.2 Объявления тела перечисления
- Начиная с версии:
- 1.5
newInstance
public T newInstance(Object... initargs) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException
Constructor, чтобы создать и инициализировать новый экземпляр класса, в котором объявлен конструктор, с указанными параметрами инициализации. Отдельные параметры автоматически распаковываются для соответствия формальным параметрам примитивных типов; к примитивным параметрам и параметрам-ссылкам при необходимости применяются преобразования, допустимые при вызове метода. Если базовый конструктор не требует формальных параметров, переданный массив initargs может иметь длину 0 или быть равен null.
Если объявляющий класс конструктора является внутренним классом в нестатическом контексте, первым аргументом конструктора должен быть охватывающий экземпляр; см. раздел 15.9.3 Спецификации языка Java.
Если проверки требуемого доступа и аргументов завершаются успешно и создание экземпляра продолжается, объявляющий класс конструктора инициализируется, если он ещё не был инициализирован.
Если выполнение конструктора завершается нормально, возвращается созданный и инициализированный экземпляр.
- Параметры:
-
initargs— массив объектов, передаваемых в качестве аргументов при вызове конструктора; значения примитивных типов оборачиваются в объект-обёртку соответствующего типа (например,floatвFloat) - Возвращает:
- новый объект, созданный вызовом конструктора, представленного этим объектом
- Исключения:
-
IllegalAccessException— если этот объектConstructorобеспечивает контроль доступа языка Java, а базовый конструктор недоступен. -
IllegalArgumentException— если число фактических и формальных параметров различается; если не удалось выполнить преобразование распаковки аргументов примитивных типов; если после возможной распаковки значение параметра нельзя преобразовать в соответствующий формальный тип параметра посредством преобразования, допустимого при вызове метода; если конструктор относится к классу-перечислению. -
InstantiationException— если класс, в котором объявлен базовый конструктор, является абстрактным. -
InvocationTargetException— если базовый конструктор выбрасывает исключение. -
ExceptionInInitializerError— если инициализация, вызванная этим методом, завершается неудачно.
isVarArgs
public boolean isVarArgs()
true, если исполняемый элемент объявлен принимающим переменное число аргументов; в противном случае возвращает false.- Переопределяет:
-
isVarArgsв классеExecutable - Возвращает:
-
true, если исполняемый элемент объявлен принимающим переменное число аргументов; в противном случае возвращаетfalse - См. Спецификацию языка Java:
- 8.4.1 Формальные параметры
- Начиная с версии:
- 1.5
isSynthetic
public boolean isSynthetic()
true, если этот исполняемый элемент является синтетической конструкцией; в противном случае возвращает false.- Указано в:
-
isSyntheticв интерфейсеMember - Переопределяет:
-
isSyntheticв классеExecutable - Возвращает:
- true тогда и только тогда, когда этот исполняемый элемент является синтетической конструкцией, определённой в Спецификации языка Java.
- См. Спецификацию языка Java:
- 13.1 Форма бинарного представления
- См. Спецификацию виртуальной машины Java:
- 4.6 Методы
- Начиная с версии:
- 1.5
- См. также:
getAnnotation
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
Обратите внимание, что любая аннотация, возвращаемая этим методом, является аннотацией объявления.
- Указано в:
-
getAnnotationв интерфейсеAnnotatedElement - Переопределяет:
-
getAnnotationв классеExecutable - Параметры типа:
T— тип аннотации, которую требуется найти и вернуть, если она присутствует- Параметры:
-
annotationClass— объект Class, соответствующий типу аннотации - Возвращает:
- аннотацию этого элемента указанного типа, если она присутствует у этого элемента; в противном случае возвращает null
- Исключения:
-
NullPointerException— если заданный класс аннотации равен null - Начиная с версии:
- 1.5
getDeclaredAnnotations
public Annotation[] getDeclaredAnnotations()
Обратите внимание, что все аннотации, возвращаемые этим методом, являются аннотациями объявления.
- Указано в:
-
getDeclaredAnnotationsв интерфейсеAnnotatedElement - Переопределяет:
-
getDeclaredAnnotationsв классеAccessibleObject - Возвращает:
- аннотации, непосредственно присутствующие у этого элемента
- Начиная с версии:
- 1.5
getParameterAnnotations
public Annotation[][] getParameterAnnotations()
Annotation, представляющих аннотации формальных параметров объекта Executable, представленного этим объектом, в порядке объявления. Синтетические и предписанные параметры (см. пояснение ниже), например внешний параметр «this» конструктора внутреннего класса, будут представлены в возвращаемом массиве. Если исполняемый элемент не имеет параметров (то есть формальных, синтетических и предписанных параметров нет), возвращается массив нулевой длины. Если у Executable имеется один или несколько параметров, для каждого параметра без аннотаций возвращается вложенный массив нулевой длины. Объекты аннотаций, содержащиеся в возвращаемых массивах, сериализуемы. Вызывающий этот метод код может изменять возвращаемые массивы; это не повлияет на массивы, возвращаемые другим вызывающим кодом. Компилятор может добавлять в список параметров метода дополнительные параметры, неявно объявленные в исходном коде («предписанные»), а также параметры, не объявленные в исходном коде ни явно, ни неявно («синтетические»). Дополнительную информацию см. в описании Parameter. Обратите внимание, что все аннотации, возвращаемые этим методом, являются аннотациями объявления.
- Указано в:
-
getParameterAnnotationsв классеExecutable - Возвращает:
- массив массивов, представляющих аннотации формальных и неявных параметров исполняемого элемента, представленного этим объектом, в порядке объявления
- Начиная с версии:
- 1.5
- См. также:
getAnnotatedReturnType
public AnnotatedType getAnnotatedReturnType()
AnnotatedType, представляющий использование типа для указания типа возвращаемого значения метода/конструктора, представленного этим объектом Executable. Если этот объект Executable представляет конструктор, объект
AnnotatedType представляет тип создаваемого объекта. Если этот объект Executable представляет метод, объект
AnnotatedType представляет использование типа для указания типа возвращаемого значения метода.- Указано в:
-
getAnnotatedReturnTypeв классеExecutable - Возвращает:
- объект, представляющий тип возвращаемого значения метода или конструктора, представленного этим объектом
Executable - Начиная с версии:
- 1.8
getAnnotatedReceiverType
public AnnotatedType getAnnotatedReceiverType()
AnnotatedType, представляющий использование типа для указания типа получателя метода/конструктора, представленного этим объектом Executable. Тип получателя метода/конструктора доступен только в том случае, если метод/конструктор имеет параметр-получатель (JLS 8.4.1). Если этот объект
Executable представляет метод экземпляра или конструктор внутреннего класса-члена, и метод/конструктор либо не имеет параметра-получателя, либо имеет параметр-получатель, тип которого не содержит аннотаций, возвращаемое значение является объектом AnnotatedType, представляющим элемент без аннотаций. Если этот объект Executable представляет статический метод или конструктор класса верхнего уровня, статического класса-члена, локального или анонимного класса, возвращаемое значение равно null.- Переопределяет:
-
getAnnotatedReceiverTypeв классеExecutable - Возвращает:
- объект, представляющий тип получателя метода или конструктора, представленного этим объектом
Executable, либоnull, если этот объектExecutableне может иметь параметр-получатель - Начиная с версии:
- 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/reflect/Constructor.html