Interface MethodModel

All Superinterfaces:
AttributedElement, ClassElement, ClassFileElement, CompoundElement<MethodElement>, Iterable<MethodElement>

public sealed interface MethodModel extends CompoundElement<MethodElement>, AttributedElement, ClassElement
Models a method. A method can be viewed as a composition of MethodElements, or by random access via accessor methods if only specific parts of the method is needed.

Methods can be obtained from ClassModel.methods(), or in the traversal of member elements of a class.

ClassBuilder.withMethod(String, MethodTypeDesc, int, Consumer) is the main way to construct methods. ClassBuilder.transformMethod(java.lang.classfile.MethodModel, java.lang.classfile.MethodTransform) allows creating a new method by selectively processing the original method elements and directing the results to a method builder.

All method attributes are accessible as member elements.

See Java Virtual Machine Specification:
4.6 Methods
Since:
24
See Also:
  • Method Details

    • flags

      AccessFlags flags()
      Returns the access flags.
      Returns:
      the access flags
      See Also:
    • parent

      Optional<ClassModel> parent()
      Returns the class model this method is a member of, if known.
      Returns:
      the class model this method is a member of, if known
    • methodName

      Utf8Entry methodName()
      Returns the name of this method.
      Returns:
      the name of this method
    • methodType

      Utf8Entry methodType()
      Returns the method descriptor string of this method.
      Returns:
      the method descriptor string of this method
    • methodTypeSymbol

      default MethodTypeDesc methodTypeSymbol()
      Returns the method type, as a symbolic descriptor.
      Returns:
      the method type, as a symbolic descriptor
    • code

      Returns the body of this method, if there is one.
      Returns:
      the body of this method, if there is one