Spec-Zone.ru › OpenJDK 27

Интерфейс 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
Модификатор и тип Метод Описание
default void accept(MethodElement e)
Включает элемент-член в создаваемую структуру.
ConstantPoolBuilder constantPool()
Возвращает построитель пула констант, связанный с этим построителем.
default MethodBuilder transform(CompoundElement<MethodElement> model, ClassFileTransform<?, MethodElement, MethodBuilder> transform)
Применяет преобразование к составной структуре, направляя результаты в этот построитель.
MethodBuilder with(MethodElement e)
Включает элемент-член в создаваемую структуру.

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

andThen
Модификатор и тип Метод Описание
default Consumer<MethodElement> andThen(Consumer<? super MethodElement> after)
Возвращает составной Consumer, который последовательно выполняет сначала эту операцию, а затем операцию after.

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

withFlags

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

withFlags

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