# 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