Interface MethodBuilder
- All Superinterfaces:
ClassFileBuilder<MethodElement, MethodBuilder>
,Consumer<MethodElement>
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 TypeMethodDescriptiontransformCode
(CodeModel code, CodeTransform transform) Build the method body for this method by transforming the body of another method.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 java.lang.classfile.ClassFileBuilder
accept, constantPool, transform, with
-
Method Details
-
withFlags
Sets the method access flags. TheAccessFlag.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_STATIC
flag is modified- See Also:
-
withFlags
Sets the method access flags. TheAccessFlag.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_STATIC
flag is modified- See Also:
-
withCode
Build the method body for this method.- Parameters:
code
- a handler receiving aCodeBuilder
- Returns:
- this builder
- See Also:
-
transformCode
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 transformedtransform
- the transform to apply to the method body- Returns:
- this builder
- See Also:
-