Класс Конструктор<T>

Параметры типа:
T - класс, в котором объявлен конструктор
Все реализуемые интерфейсы:
AnnotatedElement, GenericDeclaration, Member
public final class Constructor<T>
extends Executable

Constructor предоставляет информацию о и доступ к одному конструктору класса.

Constructor разрешает расширяющие преобразования при сопоставлении фактических параметров с формальными параметрами базового конструктора в методе newInstance(), но выбрасывает IllegalArgumentException , если произойдет сужающее преобразование.

С тех пор:
1.1
См. также:
Member, Class, Class.getConstructors(), Class.getConstructor(Class[]), Class.getDeclaredConstructors()

Поля

Поля, объявленные в интерфейсе java.lang.reflect.Member

DECLARED, PUBLIC

Методы

Модификатор и тип Метод Описание
boolean equals​(Object obj)

Сравнивает этот Constructor с указанным объектом.

AnnotatedType getAnnotatedReceiverType()

Возвращает объект AnnotatedType, представляющий использование типа для указания типа получателя метода/конструктора, представленного этим объектом Executable.

AnnotatedType getAnnotatedReturnType()

Возвращает объект AnnotatedType , представляющий использование типа для указания типа возвращаемого значения метода/конструктора, представленного этим объектом Executable.

<T extends Annotation>
T
getAnnotation​(Class<T> annotationClass)

Возвращает аннотацию элемента для указанного типа, если она присутствует, в противном случае null.

Annotation[] getDeclaredAnnotations()

Возвращает аннотации, непосредственно присутствующие на этом элементе.

Class<T> getDeclaringClass()

Возвращает объект Class , представляющий класс, который объявляет конструктор, представленный этим объектом.

Type[] getGenericExceptionTypes()

Возвращает массив объектов Type , представляющих исключения, объявленные как выбрасываемые этим исполняемым объектом.

Type[] getGenericParameterTypes()

Возвращает массив объектов Type , представляющих формальные типы параметров, в порядке объявления, исполняемого объекта, представленного этим объектом.

String getName()

Возвращает имя этого конструктора в виде строки.

Annotation[][] getParameterAnnotations()

Возвращает массив массивов Annotation , представляющих аннотации формальных параметров, в порядке объявления, Executable , представленного этим объектом.

int getParameterCount()

Возвращает количество формальных параметров (явных, неявных или ни тех, ни других) для исполняемого объекта, представленного этим объектом.

TypeVariable<Constructor<T>>[] getTypeParameters()

Возвращает массив объектов TypeVariable , представляющих переменные типа, объявленные обобщенным объявлением, представленным этим объектом GenericDeclaration , в порядке объявления.

int hashCode()

Возвращает код хэш для этого Constructor.

boolean isSynthetic()

Возвращает true , если этот исполняемый элемент является синтетической конструкцией; возвращает false в противном случае.

boolean isVarArgs()

Возвращает true , если этот исполняемый элемент был объявлен с переменным числом аргументов; возвращает false в противном случае.

T newInstance​(Object... initargs)

Использует конструктор, представленный этим объектом Constructor , для создания и инициализации нового экземпляра класса, объявляющего конструктор, с указанными параметрами инициализации.

void setAccessible​(boolean flag)

Устанавливает флаг accessible для этого отражённого объекта на указанное булево значение.

String toGenericString()

Возвращает строку, описывающую этот Constructor, включая параметры типа.

String toString()

Возвращает строку, описывающую этот Constructor.

Методы, объявленные в классе java.lang.reflect.Executable

getAnnotatedExceptionTypes, getAnnotatedParameterTypes, getAnnotationsByType, getExceptionTypes, getModifiers, getParameters, getParameterTypes

Методы, объявленные в классе 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 находится в пакете, к которому модуль, содержащий D exports , предоставляет доступ по крайней мере для модуля, содержащего C.
  • Член является protected static, D находится в пакете, к которому модуль, содержащий D предоставляет доступ по крайней мере для модуля, содержащего C, и C является подклассом D.
  • D находится в пакете, к которому модуль, содержащий D opens, предоставляет доступ по крайней мере для модуля, содержащего C. Все пакеты в безымянных и открытых модулях открыты для всех модулей, и поэтому этот метод всегда выполняется успешно, когда D находится в безымянном или открытом модуле.

Этот метод не может использоваться для включения доступа к закрытым членам, членам с доступом по умолчанию (пакет), защищённым экземплярам членов или защищённым конструкторам, когда класс объявления находится в другом модуле по сравнению с вызывающей стороной, и пакет, содержащий класс объявления, не открыт для модуля вызывающей стороны.

Если менеджер безопасности существует, его метод checkPermission сначала вызывается с разрешением ReflectPermission("suppressAccessChecks").

Также выбрасывается исключение SecurityException, если этот объект является объектом Constructor для класса Class и flag равно true.

Overrides:
setAccessible в классе AccessibleObject
Parameters:
flag - новое значение для флага accessible
Throws:
InaccessibleObjectException - если доступ не может быть включён
SecurityException - если запрос отклоняется менеджером безопасности или это конструктор для java.lang.Class
See Also:
AccessibleObject.trySetAccessible(), MethodHandles.privateLookupIn(java.lang.Class<?>, java.lang.invoke.MethodHandles.Lookup)

getDeclaringClass

public Class<T> getDeclaringClass()

Возвращает объект Class, представляющий класс, объявляющий конструктор, представленный этим объектом.

Specified by:
getDeclaringClass в интерфейсе Member
Specified by:
getDeclaringClass в классе Executable
Returns:
объект, представляющий класс объявления базового члена

getName

public String getName()

Возвращает имя этого конструктора в виде строки. Это имя класса объявления конструктора в двоичном формате.

Specified by:
getName в интерфейсе Member
Specified by:
getName в классе Executable
Returns:
простое имя базового члена

getTypeParameters

public TypeVariable<Constructor<T>>[] getTypeParameters()

Возвращает массив объектов TypeVariable, представляющих переменные типа, объявленные в обобщённом объявлении, представленном этим объектом GenericDeclaration, в порядке объявления. Возвращает массив длины 0, если базовое обобщённое объявление не объявляет переменных типа.

Specified by:
getTypeParameters в интерфейсе GenericDeclaration
Specified by:
getTypeParameters в классе Executable
Returns:
массив объектов TypeVariable , представляющих переменные типа, объявленные этим обобщённым объявлением
Throws:
GenericSignatureFormatError - если обобщённая сигнатура этого обобщённого объявления не соответствует формату, указанному в Спецификации Java™ виртуальной машины
Since:
1.5

getParameterCount

public int getParameterCount()

Возвращает количество формальных параметров (явных, неявных или ни тех, ни других) для исполняемого кода, представленного этим объектом.

Overrides:
getParameterCount в классе Executable
Returns:
Количество формальных параметров для исполняемого кода, представленного этим объектом
Since:
1.8

getGenericParameterTypes

public Type[] getGenericParameterTypes()

Возвращает массив объектов Type, представляющих формальные типы параметров в порядке объявления для исполняемого кода, представленного этим объектом. Возвращает массив длины 0, если базовый исполняемый код не принимает параметров.

Если формальный тип параметра является параметризованным типом, объект Type , возвращённый для него, должен точно отражать фактические параметры типа, используемые в исходном коде.

Если формальный тип параметра является переменной типа или параметризованным типом, он создаётся. В противном случае он разрешается.

Overrides:
getGenericParameterTypes в классе Executable
Returns:
массив Type , представляющих формальные типы параметров базового исполняемого кода в порядке объявления
Throws:
GenericSignatureFormatError - если обобщённая сигнатура метода не соответствует формату, указанному в Спецификации Java™ виртуальной машины
TypeNotPresentException - если любой из типов параметров базового исполняемого кода ссылается на необъявленный тип
MalformedParameterizedTypeException - если любой из типов параметров базового исполняемого кода ссылается на параметризованный тип, который нельзя инстанцировать по каким-либо причинам
Since:
1.5

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:
Object.hashCode(), HashMap

hashCode

public int hashCode()

Возвращает хэш-код для этого Constructor. Хэш-код совпадает с хэш-кодом имени класса объявления базового конструктора.

Overrides:
hashCode в классе Object
Returns:
значение хэш-кода для этого объекта.
See Also:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

toString

public String toString()

Возвращает строку, описывающую этот Constructor. Строка отформатирована как модификаторы доступа конструктора, если таковые имеются, за которыми следует полное имя класса объявления, за которым следует заключённый в скобки, разделённый запятыми список формальных типов параметров конструктора. Например:

public java.util.Hashtable(int,float)

Если конструктор объявлен для выброса исключений, за списком параметров следует пробел, за которым следует слово "throws", за которым следует разделённый запятыми список типов выбрасываемых исключений.

Единственными возможными модификаторами для конструкторов являются модификаторы доступа public, protected или private. Может быть только один из них или ни одного, если конструктор имеет доступ по умолчанию (пакет).

Overrides:
toString в классе Object
Returns:
строка, описывающая этот Constructor

toGenericString

public String toGenericString()

Возвращает строку, описывающую этот Constructor, включая параметры типа. Строка отформатирована следующим образом: модификаторы доступа конструктора (если есть), за которыми следуют параметры типа в скобках через запятую, далее полное имя объявляющего класса, затем список типов формальных параметров конструктора в скобках через запятую. Если конструктор объявлен как принимающий переменное число аргументов, вместо обозначения последнего параметра как "Type[]", он обозначается как "Type...". Пробел используется для разделения модификаторов доступа друг от друга и от параметров типа или имени класса. Если параметров типа нет, список параметров типа опускается; если список параметров типа присутствует, пробел отделяет его от имени класса. Если конструктор объявлен как выбрасывающий исключения, после списка параметров следует пробел, слово "throws", за которым следует список типов исключений через запятую.

Возможными модификаторами для конструкторов являются модификаторы доступа public, protected или private. Может быть только один из них или ни одного, если конструктор имеет доступ по умолчанию (пакетный доступ).

Определено в:
toGenericString в классе Executable
Возвращает:
строка, описывающая этот Constructor, включая параметры типа
С тех пор как:
1.5

newInstance

public T newInstance(Object... initargs)
              throws InstantiationException,
                     IllegalAccessException,
                     IllegalArgumentException,
                     InvocationTargetException

Использует конструктор, представленный этим объектом Constructor, для создания и инициализации нового экземпляра класса, объявляющего конструктор, с указанными параметрами инициализации. Отдельные параметры автоматически раскручиваются для соответствия примитивным формальным параметрам, и как примитивные, так и ссылочные параметры подлежат преобразованиям вызова методов, если это необходимо.

Если число формальных параметров, требуемых базовым конструктором, равно 0, предоставленный массив 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 тогда и только тогда, когда данное исполняемое действие было объявлено как принимающее переменное число аргументов.
С тех пор как:
1.5

isSynthetic

public boolean isSynthetic()

Возвращает true , если данное исполняемое действие является искусственным; в противном случае возвращает false.

Определено в:
isSynthetic в интерфейсе Member
Переопределяет:
isSynthetic в классе Executable
Возвращает:
true, если и только если это исполняемое действие является искусственным, как определено в спецификации языка Java™.
С тех пор как:
1.5

getAnnotation

public <T extends Annotation> T getAnnotation(Class<T> annotationClass)

Возвращает аннотацию этого элемента для указанного типа, если такая аннотация присутствует, иначе null.

Определено в:
getAnnotation в интерфейсе AnnotatedElement
Переопределяет:
getAnnotation в классе Executable
Параметры типа:
T - тип аннотации, для которой нужно выполнить запрос и вернуть, если она присутствует
Параметры:
annotationClass - объект Class, соответствующий типу аннотации
Возвращает:
аннотация этого элемента для указанного типа аннотации, если она присутствует на этом элементе, иначе null
Исключения:
NullPointerException - если заданный класс аннотации равен null
С тех пор как:
1.5

getDeclaredAnnotations

public Annotation[] getDeclaredAnnotations()

Возвращает аннотации, которые непосредственно присутствуют на этом элементе. Этот метод игнорирует унаследованные аннотации. Если на этом элементе нет аннотаций непосредственно, значением возврата является массив длиной 0. Вызывающий метод имеет свободу изменения возвращаемого массива; это не повлияет на массивы, возвращаемые другим вызывающим сторонам.

Определено в:
getDeclaredAnnotations в интерфейсе AnnotatedElement
Переопределяет:
getDeclaredAnnotations в классе AccessibleObject
Возвращает:
аннотации, непосредственно присутствующие на этом элементе
С тех пор как:
1.5

getParameterAnnotations

public Annotation[][] getParameterAnnotations()

Возвращает массив массивов Annotation, представляющих аннотации формальных параметров, в порядке объявления, исполняемого действия Executable , представленного этим объектом. Синтетические и обязательные параметры (см. объяснение ниже), такие как внешний параметр «this» для конструктора внутреннего класса, будут представлены в возвращаемом массиве. Если у исполняемого действия нет параметров (формальных, синтетических и обязательных), будет возвращен массив нулевой длины. Если у исполняемого действия есть один или более параметров, для каждого параметра без аннотаций возвращается вложенный массив нулевой длины. Объекты аннотации, содержащиеся в возвращаемых массивах, сериализуемы. Вызывающий метод имеет право изменить возвращаемые массивы; это не повлияет на массивы, возвращаемые другим вызывающим сторонам. Компилятор может добавлять дополнительные параметры, которые неявно объявлены в исходном коде («обязательные»), а также параметры, которые не являются ни явно, ни неявно объявленными в исходном коде («синтетические»), в список параметров метода. См. Parameter для получения дополнительной информации.

Определено в:
getParameterAnnotations в классе Executable
Возвращает:
массив массивов, представляющих аннотации формальных и неявных параметров в порядке объявления исполняемого действия, представленного этим объектом
С тех пор как:
1.5
См. также:
Parameter, AnnotatedElement.getAnnotations()

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, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/reflect/Constructor.html

Spec-Zone .ru
спецификации, руководства, описания, API