ConstantValueEntry (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang.classfile.constantpool, interface: ConstantValueEntry
Keywords: java.lang.classfile.constantpool.ConstantValueEntry interface

# Interface ConstantValueEntry

All Superinterfaces:
  `LoadableConstantEntry, PoolEntry`

All Known Subinterfaces:
  `DoubleEntry, FloatEntry, IntegerEntry, LongEntry, StringEntry`

public sealed interface ConstantValueEntry extends LoadableConstantEntry permits DoubleEntry, FloatEntry, IntegerEntry, LongEntry, StringEntry
Marker interface for constant pool entries that can represent constant values in the `ConstantValue` attribute.

Sealed Class Hierarchy Graph:
Since:
  24
See Also:
  - `ConstantPoolBuilder::constantValueEntry`

- ## 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`
  Modifier and Type
  Field
  Description
  `static final int`
  `TAG_CLASS`
  The tag for `CONSTANT_Class` constant kind.
  `static final int`
  `TAG_DOUBLE`
  The tag for `CONSTANT_Double` constant kind.
  `static final int`
  `TAG_DYNAMIC`
  The tag for `CONSTANT_Dynamic` constant kind.
  `static final int`
  `TAG_FIELDREF`
  The tag for `CONSTANT_Fieldref` constant kind.
  `static final int`
  `TAG_FLOAT`
  The tag for `CONSTANT_Float` constant kind.
  `static final int`
  `TAG_INTEGER`
  The tag for `CONSTANT_Integer` constant kind.
  `static final int`
  `TAG_INTERFACE_METHODREF`
  The tag for `CONSTANT_InterfaceMethodref` constant kind.
  `static final int`
  `TAG_INVOKE_DYNAMIC`
  The tag for `CONSTANT_InvokeDynamic` constant kind.
  `static final int`
  `TAG_LONG`
  The tag for `CONSTANT_Long` constant kind.
  `static final int`
  `TAG_METHOD_HANDLE`
  The tag for `CONSTANT_MethodHandle` constant kind.
  `static final int`
  `TAG_METHOD_TYPE`
  The tag for `CONSTANT_MethodType` constant kind.
  `static final int`
  `TAG_METHODREF`
  The tag for `CONSTANT_Methodref` constant kind.
  `static final int`
  `TAG_MODULE`
  The tag for `CONSTANT_Module` constant kind.
  `static final int`
  `TAG_NAME_AND_TYPE`
  The tag for `CONSTANT_NameAndType` constant kind.
  `static final int`
  `TAG_PACKAGE`
  The tag for `CONSTANT_Package` constant kind.
  `static final int`
  `TAG_STRING`
  The tag for `CONSTANT_String` constant kind.
  `static final int`
  `TAG_UTF8`
  The tag for `CONSTANT_Utf8` constant kind.

- ## Method Summary

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

  ### Methods declared in interface LoadableConstantEntry

  `typeKind`
  Modifier and Type
  Method
  Description
  `default TypeKind`
  `typeKind()`
  Returns the data type of this constant.

  ### Methods declared in interface PoolEntry

  `constantPool, index, tag, width`
  Modifier and Type
  Method
  Description
  `ConstantPool`
  `constantPool()`
  Returns the constant pool this entry is from.
  `int`
  `index()`
  Returns the index within the constant pool corresponding to this entry.
  `int`
  `tag()`
  Returns the constant pool tag that describes the type of this entry.
  `int`
  `width()`
  Returns the number of constant pool slots this entry consumes.

- ## Method Details

  - ### constantValue

    ConstantDesc constantValue()
    Returns the constant value. The constant value will be an `Integer`, `Long`, `Float`, `Double`, or `String`.
    Specified by:
      `constantValue` in interface `LoadableConstantEntry`
    Returns:
      the constant value
    See Also:
      - `ConstantPoolBuilder.constantValueEntry(ConstantDesc)`