Класс Метод
- java.lang.Object
-
- java.lang.reflect.AccessibleObject
-
- java.lang.reflect.Executable
-
- java.lang.reflect.Method
- Все реализованные интерфейсы:
- AnnotatedElement, GenericDeclaration, Member
public final class Method extends Executable
Объект Method предоставляет информацию о и доступ к одному методу класса или интерфейса. Отражённый метод может быть классовым или экземпляром метода (включая абстрактный метод).
Объект Method разрешает расширяющие преобразования при сопоставлении фактических параметров вызова с формальными параметрами базового метода, но он выбрасывает исключение IllegalArgumentException, если произойдёт сужающее преобразование.
- См. также:
-
Member,Class,Class.getMethods(),Class.getMethod(String, Class[]),Class.getDeclaredMethods(),Class.getDeclaredMethod(String, Class[])
Поля
Поля унаследованные от интерфейса java.lang.reflect.Member
DECLARED, PUBLIC Методы
| Модификатор и Тип | Метод и описание |
|---|---|
boolean |
equals(Object obj) Сравнивает данный |
AnnotatedType |
getAnnotatedReturnType() Возвращает объект |
<T extends Annotation> |
getAnnotation(Class<T> annotationClass) Возвращает аннотацию элемента для указанного типа, если такая аннотация присутствует, в противном случае null. |
Annotation[] |
getDeclaredAnnotations() Возвращает аннотации, непосредственно присутствующие на этом элементе. |
Class<?> |
getDeclaringClass() Возвращает объект |
Object |
getDefaultValue() Возвращает значение по умолчанию для члена аннотации, представленного этим экземпляром |
Class<?>[] |
getExceptionTypes() Возвращает массив объектов |
Type[] |
getGenericExceptionTypes() Возвращает массив объектов |
Type[] |
getGenericParameterTypes() Возвращает массив объектов |
Type |
getGenericReturnType() Возвращает объект |
int |
getModifiers() Возвращает модификаторы языка Java для исполняемого элемента, представленного этим объектом. |
String |
getName() Возвращает имя метода, представленного этим объектом |
Annotation[][] |
getParameterAnnotations() Возвращает массив массивов аннотаций для формальных параметров, в порядке объявления, исполняемого элемента, представленного этим объектом. |
int |
getParameterCount() Возвращает количество формальных параметров (явных, неявных или ни тех ни других) исполняемого элемента, представленного этим объектом. |
Class<?>[] |
getParameterTypes() Возвращает массив объектов |
Class<?> |
getReturnType() Возвращает объект |
TypeVariable<Method>[] |
getTypeParameters() Возвращает массив объектов |
int |
hashCode() Возвращает хэш-код для данного |
Object |
invoke(Object obj,
Object... args) Вызывает базовый метод, представленный этим объектом |
boolean |
isBridge() Возвращает |
boolean |
isDefault() Возвращает |
boolean |
isSynthetic() Возвращает |
boolean |
isVarArgs() Возвращает |
String |
toGenericString() Возвращает строку, описывающую этот |
String |
toString() Возвращает строку, описывающую этот |
Методы унаследованные от класса java.lang.reflect.Executable
getAnnotatedExceptionTypes, getAnnotatedParameterTypes, getAnnotatedReceiverType, getAnnotationsByType, getParameters Методы унаследованные от класса java.lang.reflect.AccessibleObject
getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAccessible, isAnnotationPresent, setAccessible, setAccessible Методы унаследованные от класса java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы унаследованные от интерфейса java.lang.reflect.AnnotatedElement
getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAnnotationPresent Методы
getDeclaringClass
public Class<?> getDeclaringClass()
Возвращает объект Class, представляющий класс или интерфейс, объявляющий исполняемый код, представленный этим объектом.
- Определено в:
-
getDeclaringClassв интерфейсеMember - Определено в:
-
getDeclaringClassв классеExecutable - Возвращает:
- объект, представляющий класс, объявляющий базовый член
getName
public String getName()
Возвращает имя метода, представленного этим объектом Method, в виде String.
- Определено в:
-
getNameв интерфейсеMember - Определено в:
-
getNameв классеExecutable - Возвращает:
- простое имя базового члена
getModifiers
public int getModifiers()
Возвращает модификаторы языка Java для исполняемого кода, представленного этим объектом.
- Определено в:
-
getModifiersв интерфейсеMember - Определено в:
-
getModifiersв классеExecutable - Возвращает:
- модификаторы языка Java для базового члена
- См. также:
Modifier
getTypeParameters
public TypeVariable<Method>[] getTypeParameters()
Возвращает массив объектов TypeVariable, представляющих переменные типов, объявленные обобщенным объявлением, представленным этим объектом GenericDeclaration, в порядке объявления. Возвращает массив длины 0, если базовый обобщенный декларатор не объявляет переменных типов.
- Определено в:
-
getTypeParametersв интерфейсеGenericDeclaration - Определено в:
-
getTypeParametersв классеExecutable - Возвращает:
- массив объектов
TypeVariable, представляющих переменные типов, объявленные этим обобщенным объявлением - Исключения:
-
GenericSignatureFormatError- если обобщенная сигнатура этого обобщенного объявления не соответствует формату, указанному в Спецификации Java™ Virtual Machine - С момента:
- 1.5
getReturnType
public Class<?> getReturnType()
Возвращает объект Class, представляющий формальный тип возвращаемого значения метода, представленного этим объектом Method.
- Возвращает:
- тип возвращаемого значения для метода, представленного этим объектом
getGenericReturnType
public Type getGenericReturnType()
Возвращает объект Type, представляющий формальный тип возвращаемого значения метода, представленного этим объектом Method.
Если тип возвращаемого значения является параметризованным типом, возвращаемый объект Type должен точно отражать фактические параметры типа, используемые в исходном коде.
Если тип возвращаемого значения является переменной типа или параметризованным типом, он создается. В противном случае он разрешается.
- Возвращает:
- объект
Type, представляющий формальный тип возвращаемого значения базового метода - Исключения:
-
GenericSignatureFormatError- если обобщенная сигнатура метода не соответствует формату, указанному в Спецификации Java™ Virtual Machine -
TypeNotPresentException- если тип возвращаемого значения базового метода ссылается на необъявленный тип -
MalformedParameterizedTypeException- если тип возвращаемого значения базового метода ссылается на параметризованный тип, который нельзя создать по какой-либо причине - С момента:
- 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 для него должен точно отражать фактические параметры типа, используемые в исходном коде.
Если формальный тип параметра является переменной типа или параметризованным типом, он создается. В противном случае он разрешается.
- Переопределяет:
-
getGenericParameterTypesв классеExecutable - Возвращает:
- массив
Type, представляющих формальные типы параметров базового исполняемого кода в порядке объявления - Исключения:
-
GenericSignatureFormatError- если обобщенная сигнатура метода не соответствует формату, указанному в Спецификации Java™ Virtual Machine -
TypeNotPresentException- если любой из типов параметров базового исполняемого кода ссылается на необъявленный тип -
MalformedParameterizedTypeException- если любой из типов параметров базового исполняемого кода ссылается на параметризованный тип, который нельзя создать по какой-либо причине - С момента:
- 1.5
getExceptionTypes
public Class<?>[] getExceptionTypes()
Возвращает массив объектов Class, представляющих типы исключений, объявленных для бросания базовым исполняемым кодом, представленным этим объектом. Возвращает массив длиной 0, если исполняемый код не объявляет исключений в своем блоке throws.
- Определено в:
-
getExceptionTypesв классеExecutable - Возвращает:
- типы исключений, объявленные для бросания исполняемым кодом, представленным этим объектом
getGenericExceptionTypes
public Type[] getGenericExceptionTypes()
Возвращает массив объектов Type, представляющих исключения, объявленные для бросания этим объектом исполняемого кода. Возвращает массив длиной 0, если базовый исполняемый код не объявляет исключений в своем блоке throws.
Если тип исключения является переменной типа или параметризованным типом, он создается. В противном случае он разрешается.
- Переопределяет:
-
getGenericExceptionTypesв классеExecutable - Возвращает:
- массив типов, представляющих типы исключений, брошенных базовым исполняемым кодом
- Исключения:
-
GenericSignatureFormatError- если обобщенная сигнатура метода не соответствует формату, указанному в Спецификации Java™ Virtual Machine -
TypeNotPresentException- если блокthrowsбазового исполняемого кода ссылается на необъявленный тип -
MalformedParameterizedTypeException- если блокthrowsбазового исполняемого кода ссылается на параметризованный тип, который нельзя создать по какой-либо причине - С момента:
- 1.5
equals
public boolean equals(Object obj)
Сравнивает этот объект Method с указанным объектом. Возвращает true, если объекты совпадают. Два объекта Methods совпадают, если они были объявлены одним и тем же классом и имеют одинаковое имя, типы формальных параметров и тип возвращаемого значения.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- ссылка на объект для сравнения. - Возвращает:
-
trueесли этот объект совпадает с аргументом obj;falseв противном случае. - См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Возвращает хэш-код для этого объекта Method. Хэш-код вычисляется как исключающее ИЛИ хэш-кодов имени объявляющего класса базового метода и имени метода.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
toString
public String toString()
Возвращает строку, описывающую этот объект Method. Строка отформатирована как модификаторы доступа к методу, если они есть, затем тип возвращаемого значения метода, затем пробел, затем класс, объявляющий метод, затем точка, затем имя метода, затем скобки с запятой, разделенным списком формальных типов параметров метода. Если метод выбрасывает обработанные исключения, список параметров следует за пробелом, за словом throws и запятой, разделенным списком типов исключений, которые выбрасываются. Например:
public boolean java.lang.Object.equals(java.lang.Object)
Модификаторы доступа размещаются в каноническом порядке, как указано в "Спецификации языка Java". Это public, protected или private в первую очередь, а затем другие модификаторы в следующем порядке: abstract, default, static, final, synchronized, native, strictfp.
toGenericString
public String toGenericString()
Возвращает строку, описывающую этот Method, включая параметры типа. Строка отформатирована как модификаторы доступа к методу, если таковые имеются, за которыми следует список параметров типа в угловых скобках через запятую, если они имеются, за которыми следует тип возвращаемого значения метода, за которым следует пробел, за которым следует класс, объявляющий метод, за которым следует точка, за которым следует имя метода, за которым следует список формальных типов параметров метода в скобках через запятую. Если этот метод был объявлен с переменным числом аргументов, вместо обозначения последнего параметра как "Type[]", он обозначается как "Type...". Для разделения модификаторов доступа друг от друга и от параметров типа или типа возвращаемого значения используется пробел. Если параметров типа нет, список параметров типа опускается; если список параметров типа есть, список отделяется от имени класса пробелом. Если метод объявлен с выбрасываемыми исключениями, после списка параметров следует пробел, за которым следует слово throws, а за ним — список типов выбрасываемых исключений через запятую.
Модификаторы доступа размещаются в каноническом порядке, как указано в «Спецификации языка Java». Это public, protected или private в первую очередь, а затем и другие модификаторы в следующем порядке: abstract, default, static, final, synchronized, native, strictfp.
- Указано в:
-
toGenericStringв классеExecutable - Возвращает:
- строку, описывающую этот
Method, включая параметры типа - С тех пор, как:
- 1.5
invoke
public Object invoke(Object obj,
Object... args)
throws IllegalAccessException,
IllegalArgumentException,
InvocationTargetException Вызывает базовый метод, представленный этим объектом Method, в указанном объекте с указанными параметрами. Индивидуальные параметры автоматически распаковываются для соответствия примитивным формальным параметрам, и как примитивные, так и ссылочные параметры подвергаются преобразованиям вызова метода, если это необходимо.
Если базовый метод является статическим, то указанный аргумент obj игнорируется. Он может быть null.
Если количество формальных параметров, требуемых базовым методом, равно 0, предоставленный массив args может иметь длину 0 или быть null.
Если базовый метод является методом экземпляра, он вызывается с использованием динамического поиска метода, как документировано в Спецификации языка Java, второе издание, раздел 15.12.4.4; в частности, произойдёт переопределение на основе времени выполнения типа целевого объекта.
Если базовый метод является статическим, класс, объявивший метод, инициализируется, если он ещё не был инициализирован.
Если метод завершается нормально, возвращаемое им значение возвращается вызывающей стороне invoke; если значение имеет примитивный тип, оно предварительно упаковывается в объект. Однако, если значение имеет тип массива примитивного типа, элементы массива не упаковываются в объекты; другими словами, возвращается массив примитивного типа. Если тип возвращаемого значения базового метода void, вызов возвращает null.
- Параметры:
-
obj- объект, из которого вызывается базовый метод -
args- аргументы, используемые для вызова метода - Возвращает:
- результат диспетчеризации метода, представленного этим объектом, в
objс параметрамиargs - Выбрасывает:
-
IllegalAccessException- если этот объектMethodпроверяет контроль доступа языка Java, и базовый метод недоступен. -
IllegalArgumentException- если метод является методом экземпляра, и указанный аргумент объекта не является экземпляром класса или интерфейса, объявляющего базовый метод (или подкласса или реализующего интерфейс); если количество фактических и формальных параметров отличается; если преобразование распаковки для примитивных аргументов не удаётся; или если после возможной распаковки значение параметра не может быть преобразовано в соответствующий формальный тип параметра с помощью преобразования вызова метода. -
InvocationTargetException- если базовый метод выбрасывает исключение. -
NullPointerException- если указанный объект равен null, и метод является методом экземпляра. -
ExceptionInInitializerError- если инициализация, вызванная этим методом, не удалась.
isBridge
public boolean isBridge()
Возвращает true, если этот метод является методом моста; в противном случае возвращает false.
- Возвращает:
- true, если и только если этот метод является методом моста, как определено в Спецификации языка Java.
- С тех пор, как:
- 1.5
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
isDefault
public boolean isDefault()
Возвращает true, если этот метод является методом по умолчанию; в противном случае возвращает false. Метод по умолчанию — это публичный неабстрактный метод экземпляра, то есть метод без модификатора static с телом, объявленный в типе интерфейса.
- Возвращает:
- true, если и только если этот метод является методом по умолчанию, как определено в Спецификации языка Java.
- С тех пор, как:
- 1.8
getDefaultValue
public Object getDefaultValue()
Возвращает значение по умолчанию для члена аннотации, представленного этим экземпляром Method. Если член имеет примитивный тип, возвращается экземпляр соответствующего типа обёртки. Возвращает null, если члену не назначено значение по умолчанию или если экземпляр метода не представляет объявленного члена типа аннотации.
- Возвращает:
- значение по умолчанию для члена аннотации, представленного этим экземпляром
Method. - Выбрасывает:
-
TypeNotPresentException- если аннотация имеет типClassи определение значения по умолчанию для класса не найдено. - С тех пор, как:
- 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в классеExecutable - Возвращает:
- аннотации, непосредственно присутствующие в этом элементе
- С тех пор, как:
- 1.5
getParameterAnnotations
public Annotation[][] getParameterAnnotations()
Возвращает массив массивов Annotation, представляющих аннотации формальных параметров, в порядке объявления, метода Executable, представленного этим объектом. Синтетические и требуемые параметры (см. объяснение ниже), такие как внешний параметр "this" конструктора внутреннего класса, будут представлены в возвращаемом массиве. Если исполняемый элемент не имеет параметров (то есть ни формальных, ни синтетических, ни требуемых), возвращается массив нулевой длины. Если у Executable есть один или несколько параметров, для каждого параметра без аннотаций возвращается вложенный массив длины ноль. Объекты аннотаций, содержащиеся в возвращаемых массивах, сериализуемы. Вызывающая сторона этого метода свободна изменять возвращаемые массивы; это не повлияет на массивы, возвращаемые другими вызывающими сторонами. Компилятор может добавлять дополнительные параметры, неявно объявленные в исходном коде ("требуемые"), а также параметры, которые не являются ни неявно, ни явно объявленными в исходном коде ("синтетические"), в список параметров для метода. См. Parameter для получения дополнительной информации.
- Указано в:
-
getParameterAnnotationsв классеExecutable - Возвращает:
- массив массивов, представляющих аннотации формальных и неявных параметров, в порядке объявления, исполняемого элемента, представленного этим объектом
- С тех пор, как:
- 1.5
- См. также:
-
Parameter,Parameter.getAnnotations()
getAnnotatedReturnType
public AnnotatedType getAnnotatedReturnType()
Возвращает объект AnnotatedType, который представляет использование типа для указания типа возвращаемого значения метода/конструктора, представленного этим Executable. Если этот объект Executable представляет конструктор, объект AnnotatedType представляет тип создаваемого объекта. Если этот объект Executable представляет метод, объект AnnotatedType представляет использование типа для указания типа возвращаемого значения метода.
- Указано в:
-
getAnnotatedReturnTypeв классеExecutable - Возвращает:
- объект, представляющий тип возвращаемого значения метода или конструктора, представленного этим
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.