# Interface AnnotationValue.OfConstant

All Superinterfaces:
  `AnnotationValue`

All Known Subinterfaces:
  `AnnotationValue.OfBoolean`, `AnnotationValue.OfByte`, `AnnotationValue.OfChar`, `AnnotationValue.OfDouble`, `AnnotationValue.OfFloat`, `AnnotationValue.OfInt`, `AnnotationValue.OfLong`, `AnnotationValue.OfShort`, `AnnotationValue.OfString`

Enclosing interface:
  `AnnotationValue`

public static sealed interface AnnotationValue.OfConstant extends AnnotationValue permits AnnotationValue.OfString, AnnotationValue.OfDouble, AnnotationValue.OfFloat, AnnotationValue.OfLong, AnnotationValue.OfInt, AnnotationValue.OfShort, AnnotationValue.OfChar, AnnotationValue.OfByte, AnnotationValue.OfBoolean
Models a constant value of an element-value pair.

Sealed Class Hierarchy Graph:
Since:
  24

- ## Nested Class Summary

  ### Nested classes/interfaces declared in interface java.lang.classfile.AnnotationValue

  `AnnotationValue.OfAnnotation, AnnotationValue.OfArray, AnnotationValue.OfBoolean, AnnotationValue.OfByte, AnnotationValue.OfChar, AnnotationValue.OfClass, AnnotationValue.OfConstant, AnnotationValue.OfDouble, AnnotationValue.OfEnum, AnnotationValue.OfFloat, AnnotationValue.OfInt, AnnotationValue.OfLong, AnnotationValue.OfShort, AnnotationValue.OfString`

- ## Field Summary

  ### Fields declared in interface java.lang.classfile.AnnotationValue

  `TAG_ANNOTATION, TAG_ARRAY, TAG_BOOLEAN, TAG_BYTE, TAG_CHAR, TAG_CLASS, TAG_DOUBLE, TAG_ENUM, TAG_FLOAT, TAG_INT, TAG_LONG, TAG_SHORT, TAG_STRING`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AnnotationConstantValueEntry`
  `constant()`
  Returns the constant pool entry backing this constant element.
  `Constable`
  `resolvedValue()`
  Returns the resolved live constant value, as an object.

  ### Methods declared in interface java.lang.classfile.AnnotationValue

  `tag`

- ## Method Details

  - ### constant

    AnnotationConstantValueEntry constant()
    Returns the constant pool entry backing this constant element.
    API Note:
      Different types of constant values may share the same type of entry because they have the same computational type. For example, `AnnotationValue.OfInt` and `AnnotationValue.OfChar` are both backed by `IntegerEntry`. Use `resolvedValue()` for a value of accurate type.
    Returns:
      the constant pool entry backing this constant element

  - ### resolvedValue

    Constable resolvedValue()
    Returns the resolved live constant value, as an object. The type of the returned value may be a wrapper class or `String`.
    API Note:
      The returned object, despite being `Constable`, may not describe the right constant for encoding the annotation value in a class file. For example, `Character` returned by `AnnotationValue.OfChar` describes itself as a `DynamicConstantPoolEntry`, but it is actually backed by `IntegerEntry` in annotation format. Use `constant()` for a correct constant pool representation.
    Returns:
      the resolved live constant value, as an object