LocalVariableTableAttribute (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang.classfile.attribute, interface: LocalVariableTableAttribute
Keywords: java.lang.classfile.attribute.LocalVariableTableAttribute interface

# Interface LocalVariableTableAttribute

All Superinterfaces:
  `Attribute<LocalVariableTableAttribute>, ClassFileElement`

public sealed interface LocalVariableTableAttribute extends Attribute<LocalVariableTableAttribute>
Models the `LocalVariableTable` attribute (JVMS 4.7.13), which records debug information about local variables. Its entries are delivered as `LocalVariable`s when traversing the elements of a `CodeModel`, which is toggled by `ClassFile.DebugElementsOption`.

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 `LocalVariable`, 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.

API Note:
  Generic local variable types and potentially annotated use of those types are defined by `LocalVariableTypeTableAttribute` and `RuntimeVisibleTypeAnnotationsAttribute` respectively, which requires this attribute to be present.
See Java Virtual Machine Specification:
  4.7.13 The `LocalVaribleTable` Attribute
Since:
  24
See Also:
  - `Attributes.localVariableTable()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<LocalVariableInfo>`
  `localVariables()`
  Returns debug information for the local variables in this method.
  `static LocalVariableTableAttribute`
  `of(List<LocalVariableInfo> locals)`
  Returns a `LocalVariableTable` attribute.

  ### Methods declared in interface Attribute

  `attributeMapper, attributeName`
  Modifier and Type
  Method
  Description
  `AttributeMapper<LocalVariableTableAttribute>`
  `attributeMapper()`
  Returns the `AttributeMapper` associated with this attribute.
  `Utf8Entry`
  `attributeName()`
  Returns the name of the attribute.

- ## Method Details

  - ### localVariables

    List<LocalVariableInfo> localVariables()
    Returns debug information for the local variables in this method.
    Returns:
      debug information for the local variables in this method

  - ### of

    static LocalVariableTableAttribute of(List<LocalVariableInfo> locals)
    Returns a `LocalVariableTable` attribute.
    API Note:
      The created attribute cannot be written to a `CodeBuilder`. Use `CodeBuilder::localVariable` instead.
    Parameters:
      `locals` - the local variable descriptions
    Returns:
      a `LocalVariableTable` attribute
    Throws:
      `IllegalArgumentException` - if the number of descriptions exceeds the limit of `u2`