Интерфейс MethodTypeDesc
- Все суперинтерфейсы:
ConstantDesc, TypeDescriptor, TypeDescriptor.OfMethod<ClassDesc, MethodTypeDesc>
public sealed interface MethodTypeDesc extends ConstantDesc, TypeDescriptor.OfMethod<ClassDesc, MethodTypeDesc>
Номинальный дескриптор константы MethodType.
- Начиная с:
- 12
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе TypeDescriptor
TypeDescriptor.OfField<F>, TypeDescriptor.OfMethod<F, M> | Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static interface |
TypeDescriptor.OfField<F extends TypeDescriptor.OfField<F>> |
Сущность с дескриптором типа поля. |
static interface |
TypeDescriptor.OfMethod<F extends TypeDescriptor.OfField<F>, M extends TypeDescriptor.OfMethod<F, |
Сущность с дескриптором типа метода. Дескрипторы методов, соответствующие JVMS §4.3.3, можно описать номинально с помощью MethodType::describeConstable; в противном случае их нельзя описать номинально. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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— еслиreturnDescимеет значениеnull - Начиная с:
- 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> - Возвращает:
ListизClassDesc, описывающих типы параметров
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— если класс, метод или поле не удалось разрешить посредством рефлексии в ходе разрешения - Начиная с:
- 21
equals
boolean equals(Object o)
Сравнивает указанный объект с этим дескриптором на равенство. Возвращает
true тогда и только тогда, когда указанный объект также является MethodTypeDesc, оба дескриптора имеют одинаковую арность, их типы возвращаемых значений равны и каждая пара соответствующих типов параметров равна.
© 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.