Интерфейс MethodTypeDesc
- Все суперинтерфейсы:
-
ConstantDesc,TypeDescriptor,TypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc>
public sealed interface MethodTypeDesc extends ConstantDesc, TypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc>
Номинальный дескриптор для константы MethodType.
- С момента:
- 12
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе java.lang.invoke.TypeDescriptor
TypeDescriptor.OfField<F extends TypeDescriptor.OfField<F>>, TypeDescriptor.OfMethod<F extends TypeDescriptor.OfField<F>, M extends TypeDescriptor.OfMethod<F, M>>
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
MethodTypeDesc |
changeParameterType |
Возвращает MethodTypeDesc, идентичный этому, за исключением того, что тип одного параметра изменен на указанный. |
MethodTypeDesc |
changeReturnType |
Возвращает MethodTypeDesc, идентичный этому, за исключением указанного возвращаемого типа. |
String |
descriptorString() |
Возвращает строку-дескриптор типа метода. |
default String |
displayDescriptor() |
Возвращает удобочитаемый дескриптор для этого типа метода, используя канонические имена параметров и возвращаемого типа. |
MethodTypeDesc |
dropParameterTypes |
Возвращает MethodTypeDesc, идентичный этому, за исключением удаления диапазона типов параметров. |
boolean |
equals |
Сравнивает указанный объект с этим дескриптором на равенство. |
MethodTypeDesc |
insertParameterTypes |
Возвращает MethodTypeDesc, идентичный этому, за исключением вставки диапазона дополнительных типов параметров. |
static MethodTypeDesc |
of |
Возвращает MethodTypeDesc с указанным возвращаемым типом и без типов параметров. |
static MethodTypeDesc |
of |
Возвращает MethodTypeDesc с заданным возвращаемым типом и типами параметров. |
static MethodTypeDesc |
of |
Возвращает MethodTypeDesc с заданным возвращаемым типом и списком типов параметров. |
static MethodTypeDesc |
ofDescriptor |
Создаёт MethodTypeDesc по строке-дескриптору метода. |
ClassDesc[] |
parameterArray() |
Возвращает типы параметров в виде массива. |
int |
parameterCount() |
Возвращает количество параметров типа метода, описываемого этим MethodTypeDesc. |
List |
parameterList() |
Возвращает типы параметров в виде неизменяемого List. |
ClassDesc |
parameterType |
Возвращает тип параметра index-го параметра типа метода, описываемого этим MethodTypeDesc. |
MethodType |
resolveConstantDesc |
|
ClassDesc |
returnType() |
Возвращает возвращаемый тип типа метода, описанного этим MethodTypeDesc. |
Подробное описание методов
ofDescriptor
static MethodTypeDesc ofDescriptor(String descriptor)
Создаёт MethodTypeDesc по строке описания метода.
- Параметры:
-
descriptor- строка описания метода - Возвращает:
- MethodTypeDesc, описывающий желаемый тип метода
- Исключения:
-
NullPointerException- если аргументnull -
IllegalArgumentException- если строка описания не является корректным описанием метода - См. Спецификацию виртуальной машины Java:
- 4.3.3 Описания методов
of
static MethodTypeDesc of(ClassDesc returnDesc)
Возвращает MethodTypeDesc с заданным типом возвращаемого значения и без типов параметров.
- Параметры:
-
returnDesc- ClassDesc, описывающий тип возвращаемого значения - Возвращает:
- MethodTypeDesc с заданным типом возвращаемого значения и без типов параметров
- Исключения:
-
NullPointerException- еслиreturnDescnull - С:
- 21
of
static MethodTypeDesc of(ClassDesc returnDesc, List<ClassDesc> paramDescs)
Возвращает MethodTypeDesc по заданному типу возвращаемого значения и списку типов параметров.
- Параметры:
-
returnDesc- ClassDesc, описывающий тип возвращаемого значения -
paramDescs- Список ClassDesc описывающих типы параметров - Возвращает:
- MethodTypeDesc по заданному типу возвращаемого значения и списку типов параметров
- Исключения:
-
NullPointerException- если любой аргумент или его содержимоеnull -
IllegalArgumentException- если любой элементparamDescsявляетсяClassDescдляvoid - С:
- 21
of
static MethodTypeDesc of(ClassDesc returnDesc, ClassDesc... paramDescs)
Возвращает MethodTypeDesc по заданному типу возвращаемого значения и типам параметров.
- Параметры:
-
returnDesc- ClassDesc, описывающий тип возвращаемого значения -
paramDescs- ClassDesc описывающие типы аргументов - Возвращает:
- MethodTypeDesc, описывающий желаемый тип метода
- Исключения:
-
NullPointerException- если любой аргумент или его содержимоеnull -
IllegalArgumentException- если любой элементparamDescsявляетсяClassDescдляvoid
returnType
ClassDesc returnType()
Возвращает тип возвращаемого значения для данного MethodTypeDesc.
- Унаследовано от:
-
returnTypeв интерфейсеTypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc> - Возвращает:
ClassDesc, описывающий тип возвращаемого значения метода
parameterCount
int parameterCount()
Возвращает количество параметров для данного MethodTypeDesc.
- Унаследовано от:
-
parameterCountв интерфейсеTypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc> - Возвращает:
- количество параметров
parameterType
ClassDesc parameterType(int index)
Возвращает тип параметра с индексом
index для данного MethodTypeDesc.- Унаследовано от:
-
parameterTypeв интерфейсеTypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc> - Параметры:
-
index- индекс параметра для получения - Возвращает:
ClassDesc, описывающий желаемый тип параметра- Исключения:
-
IndexOutOfBoundsException- если индекс находится вне полуоткрытого диапазона[0, parameterCount())
parameterList
List<ClassDesc> parameterList()
Возвращает типы параметров в качестве неизменяемого
List.- Унаследовано от:
-
parameterListв интерфейсеTypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc> - Возвращает:
ListClassDesc, описывающий типы параметров
parameterArray
ClassDesc[] parameterArray()
Возвращает типы параметров в виде массива.
- Унаследовано от:
-
parameterArrayв интерфейсеTypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc> - Возвращает:
- массив
ClassDescописывающий типы параметров
changeReturnType
MethodTypeDesc changeReturnType(ClassDesc returnType)
Возвращает MethodTypeDesc, идентичный текущему, но с заданным типом возвращаемого значения.
- Унаследовано от:
-
changeReturnTypeв интерфейсеTypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc> - Параметры:
-
returnType-ClassDesc, описывающий новый тип возвращаемого значения - Возвращает:
- MethodTypeDesc, описывающий желаемый тип метода
- Исключения:
-
NullPointerException- если аргументnull
changeParameterType
MethodTypeDesc changeParameterType(int index, ClassDesc paramType)
Возвращает MethodTypeDesc, идентичный текущему, но с изменённым типом одного параметра.
- Унаследовано от:
-
changeParameterTypeв интерфейсеTypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc> - Параметры:
-
index- индекс параметра для изменения -
paramType-ClassDesc, описывающий новый тип параметра - Возвращает:
- MethodTypeDesc, описывающий желаемый тип метода
- Исключения:
-
NullPointerException- если любой аргументnull -
IndexOutOfBoundsException- если индекс вне полуоткрытого диапазона[0, parameterCount)
dropParameterTypes
MethodTypeDesc dropParameterTypes(int start, int end)
Возвращает MethodTypeDesc, идентичный текущему, но с удалённым диапазоном типов параметров.
- Унаследовано от:
-
dropParameterTypesв интерфейсеTypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc> - Параметры:
-
start- индекс первого параметра для удаления -
end- индекс после последнего параметра для удаления - Возвращает:
- MethodTypeDesc, описывающий желаемый тип метода
- Исключения:
-
IndexOutOfBoundsException- еслиstartвне полуоткрытого диапазона[0, parameterCount), илиendвне закрытого диапазона[0, parameterCount], или еслиstart > end
insertParameterTypes
MethodTypeDesc insertParameterTypes(int pos, ClassDesc... paramTypes)
Возвращает MethodTypeDesc, идентичный текущему, но с вставленным диапазоном дополнительных типов параметров.
- Унаследовано от:
-
insertParameterTypesв интерфейсеTypeDescriptor.OfMethod<ClassDesc,MethodTypeDesc> - Параметры:
-
pos- индекс вставки первого вставляемого параметра -
paramTypes-ClassDesc, описывающие новые типы параметров для вставки - Возвращает:
- MethodTypeDesc, описывающий желаемый тип метода
- Исключения:
-
NullPointerException- если любой аргумент или его содержимоеnull -
IndexOutOfBoundsException- еслиposвне закрытого диапазона[0, parameterCount] -
IllegalArgumentException- если любой элементparamTypesявляетсяClassDescдляvoid
descriptorString
String descriptorString()
Возвращает строку-дескриптор типа метода.
- Указано в:
-
descriptorStringв интерфейсеTypeDescriptor - Возвращает:
- строку-дескриптор типа метода
- См. Спецификацию виртуальной машины Java:
- 4.3.3 Дескрипторы методов
displayDescriptor
default String displayDescriptor()
Возвращает удобочитаемый дескриптор этого типа метода, используя канонические имена типов параметров и возвращаемого значения.
- Возвращает:
- удобочитаемый дескриптор этого типа метода
resolveConstantDesc
MethodType resolveConstantDesc(MethodHandles.Lookup lookup) throws ReflectiveOperationException
Разрешает этот дескриптор рефлексивно, моделируя поведение разрешения JVMS 5.4.3 и поведение контроля доступа JVMS 5.4.4. Контекст разрешения и контроля доступа предоставляется параметром
MethodHandles.Lookup. Кэширование результата не выполняется.- Указано в:
-
resolveConstantDescв интерфейсеConstantDesc - Примечание API:
- MethodTypeDesc может представлять дескрипторы типов методов, которые не могут быть представлены MethodType, например, методы с более чем 255 слотами параметров, поэтому попытки разрешения могут привести к ошибкам.
- Параметры:
-
lookup-MethodHandles.Lookupдля обеспечения разрешения имен и контекста контроля доступа - Возвращает:
- разрешенное значение константы
- Изначает:
-
ReflectiveOperationException- если класс, метод или поле не удалось разрешить рефлексивно в ходе разрешения
equals
boolean equals(Object o)
Сравнивает указанный объект с этим дескриптором на равенство. Возвращает
true тогда и только тогда, когда указанный объект также является MethodTypeDesc и оба имеют одинаковую арность, их типы возвращаемых значений равны, и каждая пара соответствующих типов параметров равны.- Переопределяет:
-
equalsв классеObject - Параметры:
-
o- другой объект - Возвращает:
- является ли этот дескриптор равным другому объекту
- См. также:
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/constant/MethodTypeDesc.html