Spec-Zone.ru › OpenJDK 27

Интерфейс 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,M>>
Сущность с дескриптором типа метода. Дескрипторы методов, соответствующие JVMS §4.3.3, можно описать номинально с помощью MethodType::describeConstable; в противном случае их нельзя описать номинально.

Краткое описание методов

Модификатор и тип Метод Описание
MethodTypeDesc changeParameterType(int index, ClassDesc paramType)
Возвращает MethodTypeDesc, идентичный этому, за исключением того, что тип одного параметра заменен указанным типом.
MethodTypeDesc changeReturnType(ClassDesc returnType)
Возвращает MethodTypeDesc, идентичный этому, за исключением указанного типа возвращаемого значения.
String descriptorString()
Возвращает строку дескриптора типа метода.
default String displayDescriptor()
Возвращает понятный человеку дескриптор этого типа метода, используя канонические имена типов параметров и возвращаемого значения.
MethodTypeDesc dropParameterTypes(int start, int end)
Возвращает MethodTypeDesc, идентичный этому, за исключением того, что диапазон типов параметров удален.
boolean equals(Object o)
Сравнивает указанный объект с этим дескриптором на равенство.
MethodTypeDesc insertParameterTypes(int pos, ClassDesc... paramTypes)
Возвращает MethodTypeDesc, идентичный этому, за исключением того, что в него вставлен диапазон дополнительных типов параметров.
static MethodTypeDesc of(ClassDesc returnDesc)
Возвращает MethodTypeDesc с указанным типом возвращаемого значения и без типов параметров.
static MethodTypeDesc of(ClassDesc returnDesc, ClassDesc... paramDescs)
Возвращает MethodTypeDesc с указанными типом возвращаемого значения и типами параметров.
static MethodTypeDesc of(ClassDesc returnDesc, List<ClassDesc> paramDescs)
Возвращает MethodTypeDesc с указанными типом возвращаемого значения и списком типов параметров.
static MethodTypeDesc ofDescriptor(String descriptor)
Создает MethodTypeDesc по строке дескриптора метода.
ClassDesc[] parameterArray()
Возвращает типы параметров в виде массива.
int parameterCount()
Возвращает число параметров типа метода, описанного этим MethodTypeDesc.
List<ClassDesc> parameterList()
Возвращает типы параметров в виде неизменяемого List.
ClassDesc parameterType(int index)
Возвращает тип параметра index-го параметра типа метода, описанного этим MethodTypeDesc.
MethodType resolveConstantDesc(MethodHandles.Lookup lookup)
Разрешает этот дескриптор посредством рефлексии, имитируя поведение разрешения согласно JVMS §5.4.3 и поведение проверки доступа согласно JVMS §5.4.4.
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, оба дескриптора имеют одинаковую арность, их типы возвращаемых значений равны и каждая пара соответствующих типов параметров равна.
Переопределяет:
equals в классе Object
Параметры:
o — другой объект
Возвращает:
указывает, равен ли этот дескриптор другому объекту
См. также:
  • Object.hashCode()
  • HashMap

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API