Interface Label
public sealed interface Label
A marker for a position within the instructions of a method body.  The
 position is a cursor position in the list of instructions, similar to that
 of a 
ListIterator.
 Reading Labels
Labels read fromclass files represent positions in the code
 array of a Code attribute.  It is associated with a
 bci (bytecode index), also known as pc
 (program counter), the index into the code array; the actual cursor
 position is immediately before the given index, so a label at the beginning
 of the instructions has bci 0, and a label at the end of the
 instructions has bci codeLength() + 1.  The
 bci can be inspected through CodeAttribute::labelToBci.
 
 In generic CodeModels, a label may not have a bci value; the position
 of a label can be found by searching for the corresponding LabelTarget
 within that model.
 
Writing Labels
Many models injava.lang.classfile refer to labels.  To write a
 label, a label must be obtained, it must be bound to a CodeBuilder.
 To obtain a label:
- Use a label read from other models.
- Use pre-defined labels from a CodeBuilder, such asCodeBuilder::startLabel,CodeBuilder::endLabel, orBlockCodeBuilder::breakLabel. They are already bound.
- Create labels with CodeBuilder::newLabelorCodeBuilder::newBoundLabel.
 A label must be bound exactly once in the CodeBuilder where it is
 used; otherwise, writing fails.  To bind an unbound label:
 
- Send a read LabelTargetto aCodeBuilder.
- Use CodeBuilder::labelBinding.
CodeBuilder; they are separate entities and the label is bound to
 different positions in them.- Since:
- 24
- See Also: