# Interface ConstantInstruction.LoadConstantInstruction

All Superinterfaces:
  `ClassFileElement, CodeElement, ConstantInstruction, Instruction`

Enclosing interface:
  `ConstantInstruction`

public static sealed interface ConstantInstruction.LoadConstantInstruction extends ConstantInstruction
Models a "load constant" instruction, which encodes the constant value in the constant pool. Includes `ldc` and `ldc_w`, and `ldc2_w` instructions.

A load constant instruction is composite:

    LoadConstantInstruction(LoadableConstantEntry constantEntry)

A "load constant" instruction can load any constant value supported by other constant-load instructions. However, other instructions are usually more optimized, avoiding extra constant pool entries and being smaller.

Since:
  24
See Also:
  - `Opcode.Kind.CONSTANT`
  - `ConstantInstruction::ofLoad`
  - `CodeBuilder::ldc`

- ## Nested Class Summary

  ### Nested classes/interfaces declared in interface ConstantInstruction

  `ConstantInstruction.ArgumentConstantInstruction, ConstantInstruction.IntrinsicConstantInstruction, ConstantInstruction.LoadConstantInstruction`
  Modifier and Type
  Interface
  Description
  `static interface`
  `ConstantInstruction.ArgumentConstantInstruction`
  Models an "argument constant" instruction, which encodes the constant value in the instruction directly.
  `static interface`
  `ConstantInstruction.IntrinsicConstantInstruction`
  Models an "intrinsic constant" instruction, which encodes the constant value in its opcode.
  `static interface`
  `ConstantInstruction.LoadConstantInstruction`
  Models a "load constant" instruction, which encodes the constant value in the constant pool.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `LoadableConstantEntry`
  `constantEntry()`
  Returns the constant value.
  `default TypeKind`
  `typeKind()`
  Returns the computational type of the constant.

  ### Methods declared in interface ConstantInstruction

  `constantValue`
  Modifier and Type
  Method
  Description
  `ConstantDesc`
  `constantValue()`
  Returns the constant value.

  ### 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

  - ### constantEntry

    LoadableConstantEntry constantEntry()
    Returns the constant value.
    Returns:
      the constant value

  - ### typeKind

    default TypeKind typeKind()
    Description copied from interface: `ConstantInstruction`
    Returns the computational type of the constant. This is derived from the `constantValue`.
    Specified by:
      `typeKind` in interface `ConstantInstruction`
    Returns:
      the computational type of the constant