Interface LineNumberTableAttribute

All Superinterfaces:
Attribute<LineNumberTableAttribute>, ClassFileElement

public sealed interface LineNumberTableAttribute extends Attribute<LineNumberTableAttribute>
Models the LineNumberTable attribute (JVMS 4.7.12), which records the mapping between indexes into the code array and line numbers in the source file. Its entries are delivered as LineNumber when traversing the elements of a CodeModel, which is toggled by ClassFile.LineNumbersOption.

This attribute only appears on Code attributes, and permits multiple instances in a Code attribute. It has a data dependency on labels.

This attribute cannot be sent to a CodeBuilder; its entries can be constructed with LineNumber, resulting in at most one attribute instance in the built Code attribute.

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

See Java Virtual Machine Specification:
4.7.12 The LineNumberTable Attribute
Since:
24
See Also:
  • Method Details

    • lineNumbers

      List<LineNumberInfo> lineNumbers()
      Returns the table mapping bytecode offsets to source line numbers.
      Returns:
      the table mapping bytecode offsets to source line numbers
    • of

      Returns a LineNumberTable attribute.
      API Note:
      The created attribute cannot be written to a CodeBuilder. Call CodeBuilder::lineNumber in the correct order instead.
      Parameters:
      lines - the line number descriptions
      Returns:
      a LineNumberTable attribute