LineNumber (Java SE 25 & JDK 25)
Description: declaration: module: java.base, package: java.lang.classfile.instruction, interface: LineNumber
Keywords: java.lang.classfile.instruction.LineNumber interface

# Interface LineNumber

All Superinterfaces:
  `ClassFileElement, CodeElement, PseudoInstruction`

public sealed interface LineNumber extends PseudoInstruction
A pseudo-instruction which indicates the code for a given line number starts after the current position in a `Code` attribute. This models a single entry in the `LineNumberTable` attribute. Delivered as a `CodeElement` during traversal of the elements of a `CodeModel`, according to the setting of the `ClassFile.LineNumbersOption` option.

A line number entry is composite:

    LineNumber(int line)

Another model, `LineNumberInfo`, also models a line number entry; it has no dependency on a `CodeModel` and represents of bci values as `int`s instead of order of pseudo-instructions in the elements of a `CodeModel`, and is used as components of a `LineNumberTableAttribute`.

API Note:
  Line numbers are represented with custom pseudo-instructions to avoid using labels, which usually indicate branching targets for the control flow.
Since:
  24
See Also:
  - `LineNumberInfo`
  - `CodeBuilder::lineNumber`
  - `ClassFile.LineNumbersOption`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `line()`
  Returns the line number.
  `static LineNumber`
  `of(int line)`
  Returns a line number pseudo-instruction.

- ## Method Details

  - ### line

    int line()
    Returns the line number.
    Returns:
      the line number

  - ### of

    static LineNumber of(int line)
    Returns a line number pseudo-instruction.
    Parameters:
      `line` - the line number
    Returns:
      a line number pseudo-instruction