# Interface LoadableConstantEntry

All Superinterfaces:
  `PoolEntry`

All Known Subinterfaces:
  `ClassEntry, ConstantDynamicEntry, ConstantValueEntry, DoubleEntry, FloatEntry, IntegerEntry, LongEntry, MethodHandleEntry, MethodTypeEntry, StringEntry`

public sealed interface LoadableConstantEntry extends PoolEntry permits ClassEntry, ConstantDynamicEntry, ConstantValueEntry, MethodHandleEntry, MethodTypeEntry
Marker interface for constant pool entries suitable for loading via the `ldc` instructions.

The use of a `LoadableConstantEntry` is modeled by a `ConstantDesc`. Conversions are through `ConstantPoolBuilder.loadableConstantEntry(ConstantDesc)` and `constantValue()`.

See Java Virtual Machine Specification:
  4.4 The Constant Pool
Since:
  24
See Also:
  - `CodeBuilder.ldc(LoadableConstantEntry)`

- ## Field Summary

  ### Fields declared in interface PoolEntry

  `TAG_CLASS, TAG_DOUBLE, TAG_DYNAMIC, TAG_FIELDREF, TAG_FLOAT, TAG_INTEGER, TAG_INTERFACE_METHODREF, TAG_INVOKE_DYNAMIC, TAG_LONG, TAG_METHOD_HANDLE, TAG_METHOD_TYPE, TAG_METHODREF, TAG_MODULE, TAG_NAME_AND_TYPE, TAG_PACKAGE, TAG_STRING, TAG_UTF8`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `ConstantDesc`
  `constantValue()`
  Returns a symbolic descriptor of this constant.
  `default TypeKind`
  `typeKind()`
  Returns the data type of this constant.

  ### Methods declared in interface PoolEntry

  `constantPool, index, tag, width`

- ## Method Details

  - ### constantValue

    ConstantDesc constantValue()
    Returns a symbolic descriptor of this constant.
    Returns:
      a symbolic descriptor of this constant
    See Also:
      - `ConstantPoolBuilder.loadableConstantEntry(ConstantDesc)`

  - ### typeKind

    default TypeKind typeKind()
    Returns the data type of this constant.

    If the data type is of category 2, this constant must be loaded with `ldc2_w`; otherwise, the data type is of category 1, and this constant must be loaded with `ldc` or `ldc_w`.

    Returns:
      the data type of this constant