Spec-Zone.ru › OpenJDK 25

Интерфейс MethodBuilder

Все суперинтерфейсы:
ClassFileBuilder<MethodElement, MethodBuilder>, Consumer<MethodElement>
public sealed interface MethodBuilder extends ClassFileBuilder<MethodElement, MethodBuilder>
Построитель методов. Основной способ получить построитель метода — использовать ClassBuilder.withMethod(String, MethodTypeDesc, int, Consumer). ClassBuilder.withMethodBody(String, MethodTypeDesc, int, Consumer) полезен, если не требуется настраивать атрибуты метода, кроме Code, поскольку при этом можно пропустить обработчик метода.

Общие рекомендации и предостережения по использованию построителей для структур в формате файла class приведены в ClassFileBuilder.

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

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

Модификатор и тип Метод Описание
MethodBuilder transformCode(CodeModel code, CodeTransform transform)
Построить тело этого метода, преобразовав тело другого метода.
MethodBuilder withCode(Consumer<? super CodeBuilder> code)
Построить тело этого метода.
default MethodBuilder withFlags(int flags)
Задать флаги доступа метода.
default MethodBuilder withFlags(AccessFlag... flags)
Задать флаги доступа метода.

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

accept, constantPool, transform, with

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

andThen

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

withFlags

default MethodBuilder withFlags(int flags)
Задать флаги доступа метода. Флаг AccessFlag.STATIC нельзя изменить после создания построителя.
Параметры:
flags — флаги доступа в виде битовой маски
Возвращает:
этот построитель
Исключения:
IllegalArgumentException — если изменён флаг ACC_STATIC
См. также:
  • AccessFlags
  • AccessFlag.Location.METHOD

withFlags

default MethodBuilder withFlags(AccessFlag... flags)
Задать флаги доступа метода. Флаг AccessFlag.STATIC нельзя изменить после создания построителя.
Параметры:
flags — флаги доступа в виде битовой маски
Возвращает:
этот построитель
Исключения:
IllegalArgumentException — если изменён флаг ACC_STATIC
См. также:
  • AccessFlags
  • AccessFlag.Location.METHOD

withCode

MethodBuilder withCode(Consumer<? super CodeBuilder> code)
Построить тело этого метода.
Параметры:
code — обработчик, получающий CodeBuilder
Возвращает:
этот построитель
См. также:
  • CodeModel

transformCode

MethodBuilder transformCode(CodeModel code, CodeTransform transform)
Построить тело этого метода, преобразовав тело другого метода.

Этот метод работает так, как если бы:

withCode(cob -> cob.transform(code, transform));
Параметры:
code — тело метода, которое нужно преобразовать
transform — преобразование, применяемое к телу метода
Возвращает:
этот построитель
См. также:
  • CodeTransform

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, где приведены более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/MethodBuilder.html

Spec-Zone.ru

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