Spec-Zone.ru › OpenJDK 27

Интерфейс MethodModel

Все суперинтерфейсы:
AttributedElement, ClassElement, ClassFileElement, CompoundElement<MethodElement>, Iterable<MethodElement>
public sealed interface MethodModel extends CompoundElement<MethodElement>, AttributedElement, ClassElement
Моделирует метод. Метод можно рассматривать как композицию элементов MethodElement или получать к его частям произвольный доступ с помощью методов доступа, если нужны только определённые части метода.

Методы можно получить из ClassModel.methods() или при обходе элементов-членов класса.

Основной способ создания методов — ClassBuilder.withMethod(String, MethodTypeDesc, int, Consumer). ClassBuilder.transformMethod(MethodModel, MethodTransform) позволяет создать новый метод, выборочно обрабатывая элементы исходного метода и передавая результаты построителю метода.

Все атрибуты метода доступны как элементы-члены.

См. Спецификацию виртуальной машины Java:
4.6 Методы
Начиная с версии:
24
См. также:
  • ClassModel.methods()
  • MethodTransform

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

Модификатор и тип Метод Описание
Optional<CodeModel> code()
Возвращает тело этого метода, если оно есть.
AccessFlags flags()
Возвращает флаги доступа.
Utf8Entry methodName()
Возвращает имя этого метода.
Utf8Entry methodType()
Возвращает строку дескриптора этого метода.
default MethodTypeDesc methodTypeSymbol()
Возвращает тип метода в виде символического дескриптора.
Optional<ClassModel> parent()
Возвращает модель класса, членом которого является этот метод, если она известна.

Методы, объявленные в интерфейсе AttributedElement

attributes, findAttribute, findAttributes
Модификатор и тип Метод Описание
List<Attribute<?>> attributes()
Возвращает атрибуты этой структуры.
default <T extends Attribute<T>>
Optional<T>
findAttribute(AttributeMapper<T> attr)
Находит атрибут по имени.
default <T extends Attribute<T>>
List<T>
findAttributes(AttributeMapper<T> attr)
Находит атрибуты по имени.

Методы, объявленные в интерфейсе CompoundElement

elementList, elementStream, forEach, iterator, toDebugString
Модификатор и тип Метод Описание
default List<MethodElement> elementList()
Возвращает List, содержащий все элементы-члены этого составного элемента.
default Stream<MethodElement> elementStream()
Возвращает Stream, содержащий все элементы-члены этого составного элемента.
void forEach(Consumer<? super MethodElement> consumer)
Вызывает предоставленный обработчик для каждого элемента-члена этого составного элемента.
default Iterator<MethodElement> iterator()
Возвращает Iterator, описывающий все элементы-члены этого составного элемента.
default String toDebugString()
Возвращает текстовое представление составного элемента и его содержимого для целей отладки.

Методы, объявленные в интерфейсе Iterable

spliterator
Модификатор и тип Метод Описание
default Spliterator<MethodElement> spliterator()
Создаёт Spliterator для элементов, описанных этим Iterable.

Подробное описание методов

flags

AccessFlags flags()
Возвращает флаги доступа.
Возвращает:
флаги доступа
См. также:
  • AccessFlag.Location.METHOD

parent

Optional<ClassModel> parent()
Возвращает модель класса, членом которого является этот метод, если она известна.
Возвращает:
модель класса, членом которого является этот метод, если она известна

methodName

Utf8Entry methodName()
Возвращает имя этого метода.
Возвращает:
имя этого метода

methodType

Utf8Entry methodType()
Возвращает строку дескриптора этого метода.
Возвращает:
строку дескриптора этого метода

methodTypeSymbol

default MethodTypeDesc methodTypeSymbol()
Возвращает тип метода в виде символического дескриптора.
Возвращает:
тип метода в виде символического дескриптора

code

Optional<CodeModel> code()
Возвращает тело этого метода, если оно есть.
Возвращает:
тело этого метода, если оно есть

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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