APIdia Launch Partner
Top Description Methods
java.lang.classfile.attribute

public sealed Interface LineNumberTableAttribute

extends Attribute<LineNumberTableAttribute>
permits BoundLineNumberTableAttribute, UnboundLineNumberTableAttribute
Known Direct Implementers
jdk.internal.classfile.impl.BoundAttribute.BoundLineNumberTableAttribute, jdk.internal.classfile.impl.UnboundAttribute.UnboundLineNumberTableAttribute
Imports
java.lang.classfile.Attribute, .AttributeMapper, .AttributeMapper.AttributeStability, .Attributes, .ClassFile, .CodeBuilder, .CodeModel, java.lang.classfile.instruction.LineNumber, java.util.List, jdk.internal.classfile.impl.BoundAttribute, .UnboundAttribute

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.

Since
24
Java Virtual Machine Specification
4.7.12 The LineNumberTable Attribute
See Also
Attributes#lineNumberTable()

Method Summary

Modifier and TypeMethod and Description
public List<LineNumberInfo>

Returns:

the table mapping bytecode offsets to source line numbers
lineNumbers
()

Returns the table mapping bytecode offsets to source line numbers.

public static LineNumberTableAttribute

Returns:

a LineNumberTable attribute
of
(List<LineNumberInfo>
the line number descriptions
lines
)

Returns a LineNumberTable attribute.

Inherited from java.lang.classfile.Attribute:
attributeMapperattributeName

Method Detail

lineNumbersback to summary
public List<LineNumberInfo> lineNumbers()

Returns the table mapping bytecode offsets to source line numbers.

Returns:List<LineNumberInfo>

the table mapping bytecode offsets to source line numbers

ofback to summary
public static LineNumberTableAttribute of(List<LineNumberInfo> lines)

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:List<LineNumberInfo>

the line number descriptions

Returns:LineNumberTableAttribute

a LineNumberTable attribute

Exceptions
IllegalArgumentException:
if the number of descriptions exceeds the limit of u2