W3cubDocs

/OpenJDK 25

Interface MethodBuilder

All Superinterfaces:
ClassFileBuilder<MethodElement, MethodBuilder>, Consumer<MethodElement>
public sealed interface MethodBuilder extends ClassFileBuilder<MethodElement, MethodBuilder>
A builder for methods. The main way to obtain a method builder is via ClassBuilder.withMethod(String, MethodTypeDesc, int, Consumer). ClassBuilder.withMethodBody(String, MethodTypeDesc, int, Consumer) is useful if no attribute on the method except Code needs to be configured, skipping the method handler.

Refer to ClassFileBuilder for general guidance and caution around the use of builders for structures in the class file format.

See Java Virtual Machine Specification:
4.6 Methods
Since:
24
See Also:

Method Summary

Modifier and Type Method Description
MethodBuilder transformCode(CodeModel code, CodeTransform transform)
Build the method body for this method by transforming the body of another method.
MethodBuilder withCode(Consumer<? super CodeBuilder> code)
Build the method body for this method.
default MethodBuilder withFlags(int flags)
Sets the method access flags.
default MethodBuilder withFlags(AccessFlag... flags)
Sets the method access flags.

Methods declared in interface ClassFileBuilder

accept, constantPool, transform, with

Methods declared in interface Consumer

andThen

Method Details

withFlags

default MethodBuilder withFlags(int flags)
Sets the method access flags. The AccessFlag.STATIC flag cannot be modified after the builder is created.
Parameters:
flags - the access flags, as a bit mask
Returns:
this builder
Throws:
IllegalArgumentException - if the ACC_STATIC flag is modified
See Also:

withFlags

default MethodBuilder withFlags(AccessFlag... flags)
Sets the method access flags. The AccessFlag.STATIC flag cannot be modified after the builder is created.
Parameters:
flags - the access flags, as a bit mask
Returns:
this builder
Throws:
IllegalArgumentException - if the ACC_STATIC flag is modified
See Also:

withCode

MethodBuilder withCode(Consumer<? super CodeBuilder> code)
Build the method body for this method.
Parameters:
code - a handler receiving a CodeBuilder
Returns:
this builder
See Also:

transformCode

MethodBuilder transformCode(CodeModel code, CodeTransform transform)
Build the method body for this method by transforming the body of another method.

This method behaves as if:

withCode(cob -> cob.transform(code, transform));
Parameters:
code - the method body to be transformed
transform - the transform to apply to the method body
Returns:
this builder
See Also:

© 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