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 |
Build the method body for this method by transforming the body of another method. |
MethodBuilder |
withCode |
Build the method body for this method. |
default MethodBuilder |
withFlags |
Sets the method access flags. |
default MethodBuilder |
withFlags |
Sets the method access flags. |
Methods declared in interface ClassFileBuilder
accept, constantPool, transform, with
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 theACC_STATICflag 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 theACC_STATICflag is modified - See Also:
withCode
MethodBuilder withCode(Consumer<? super CodeBuilder> code)
Build the method body for this method.
- Parameters:
-
code- a handler receiving aCodeBuilder - 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