# Interface LookupSwitchInstruction

All Superinterfaces:
  `ClassFileElement, CodeElement, Instruction`

public sealed interface LookupSwitchInstruction extends Instruction
Models a `lookupswitch` instruction in the `code` array of a `Code` attribute. Delivered as a `CodeElement` when traversing the elements of a `CodeModel`.

A lookup switch instruction is composite:

    LookupSwitchInstruction(
        Label defaultTarget,
        List<SwitchCase> cases
    )

If elements in `cases` are not sorted ascending by their `caseValue`, a sorted version of the `cases` list will be written instead.

See Java Virtual Machine Specification:
  6.5.lookupswitch lookupswitch
Since:
  24
See Also:
  - `Opcode.Kind.LOOKUP_SWITCH`
  - `CodeBuilder::lookupswitch`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<SwitchCase>`
  `cases()`
  Returns the cases of the switch.
  `Label`
  `defaultTarget()`
  Returns the target of the default case.
  `static LookupSwitchInstruction`
  `of(Label defaultTarget, List<SwitchCase> cases)`
  Returns a lookup switch instruction.

  ### Methods declared in interface Instruction

  `opcode, sizeInBytes`
  Modifier and Type
  Method
  Description
  `Opcode`
  `opcode()`
  Returns the operation of this instruction.
  `int`
  `sizeInBytes()`
  Returns the size in bytes of this instruction.

- ## Method Details

  - ### defaultTarget

    Label defaultTarget()
    Returns the target of the default case.
    Returns:
      the target of the default case

  - ### cases

    List<SwitchCase> cases()
    Returns the cases of the switch.
    Returns:
      the cases of the switch

  - ### of

    static LookupSwitchInstruction of(Label defaultTarget, List<SwitchCase> cases)
    Returns a lookup switch instruction.
    Parameters:
      `defaultTarget` - the default target of the switch
      `cases` - the cases of the switch
    Returns:
      a lookup switch instruction