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 MethodBuilderwithFlags(int flags) Sets the method access flags.default MethodBuilderwithFlags(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.STATICflag 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
Sets the method access flags. TheAccessFlag.STATICflag 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
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:
-