Interface CodeAttribute

All Superinterfaces:
Attribute<CodeAttribute>, AttributedElement, ClassFileElement, CodeModel, CompoundElement<CodeElement>, Iterable<CodeElement>, MethodElement

public sealed interface CodeAttribute extends Attribute<CodeAttribute>, CodeModel
Models the Code attribute (JVMS 4.7.3), which contains the bytecode of this method.

This attribute only appears on methods, and does not permit multiple instances in a method. It has a data dependency on the constant pool.

This attribute was introduced in the Java Platform version 1.0.2, major version 45.

API Note:
CodeAttribute models properties of a Code attribute read from class files. General class file transformation should process and traverse a CodeModel in the traversal of a MethodModel, to support transformation of Code attributes currently being built.
See Java Virtual Machine Specification:
4.7.3 The Code Attribute
Since:
24
See Also:
  • Method Details

    • maxLocals

      int maxLocals()
      Returns the maximum size of the local variable table.
      Returns:
      the maximum size of the local variable table
    • maxStack

      int maxStack()
      Returns the maximum size of the operand stack.
      Returns:
      the maximum size of the operand stack
    • codeLength

      int codeLength()
      Returns The length of the code array in bytes.
      Returns:
      The length of the code array in bytes
    • codeArray

      byte[] codeArray()
      Returns the bytes (bytecode) of the code array.
      Returns:
      the bytes (bytecode) of the code array
    • labelToBci

      int labelToBci(Label label)
      Returns the position of the label in the codeArray. The label represents a cursor pointing at immediately before the returned index into the code array.
      Parameters:
      label - a marker for a position within this CodeAttribute
      Returns:
      the position of the label in the codeArray
      Throws:
      IllegalArgumentException - if the label is not from this attribute