Enum.EnumDesc (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.lang, class: Enum, class: EnumDesc
Keywords: java.lang.Enum.EnumDesc class

# Class Enum.EnumDesc<E extends Enum<E>>

java.lang.Object
java.lang.constant.DynamicConstantDesc<E>
java.lang.Enum.EnumDesc<E>

Type Parameters:
  `E` - the type of the enum constant

All Implemented Interfaces:
  `ConstantDesc`

Enclosing class:
  `Enum<E extends Enum<E>>`

public static final class Enum.EnumDesc<E extends Enum<E>> extends DynamicConstantDesc<E>
A nominal descriptor for an `enum` constant.

Since:
  12

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static <E extends Enum<E>>
  Enum.EnumDesc<E>`
  `of(ClassDesc enumClass, String constantName)`
  Returns a nominal descriptor for the specified `enum` class and name

  ### Methods declared in class DynamicConstantDesc

  `bootstrapArgs, bootstrapArgsList, bootstrapMethod, constantName, constantType, equals, hashCode, of, of, ofCanonical, ofNamed, resolveConstantDesc, toString`
  Modifier and Type
  Method
  Description
  `ConstantDesc[]`
  `bootstrapArgs()`
  Returns the bootstrap arguments for this constant.
  `List<ConstantDesc>`
  `bootstrapArgsList()`
  Returns the bootstrap arguments for this constant as an immutable `List`.
  `DirectMethodHandleDesc`
  `bootstrapMethod()`
  Returns a `MethodHandleDesc` describing the bootstrap method for this constant.
  `String`
  `constantName()`
  Returns the name that would appear in the `NameAndType` operand of the `LDC` for this constant.
  `ClassDesc`
  `constantType()`
  Returns a `ClassDesc` describing the type that would appear in the `NameAndType` operand of the `LDC` for this constant.
  `final boolean`
  `equals(Object o)`
  Compares the specified object with this descriptor for equality.
  `final int`
  `hashCode()`
  Returns a hash code value for this object.
  `static <T> DynamicConstantDesc<T>`
  `of(DirectMethodHandleDesc bootstrapMethod)`
  Returns a nominal descriptor for a dynamic constant whose bootstrap has no static arguments, whose name parameter is `ConstantDescs.DEFAULT_NAME`, and whose type parameter is always the same as the bootstrap method return type.
  `static <T> DynamicConstantDesc<T>`
  `of(DirectMethodHandleDesc bootstrapMethod, ConstantDesc... bootstrapArgs)`
  Returns a nominal descriptor for a dynamic constant whose name parameter is `ConstantDescs.DEFAULT_NAME`, and whose type parameter is always the same as the bootstrap method return type.
  `static <T> ConstantDesc`
  `ofCanonical(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc[] bootstrapArgs)`
  Returns a nominal descriptor for a dynamic constant, transforming it into a more specific type if the constant bootstrap is a well-known one and a more specific nominal descriptor type (e.g., ClassDesc) is available.
  `static <T> DynamicConstantDesc<T>`
  `ofNamed(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)`
  Returns a nominal descriptor for a dynamic constant.
  `E`
  `resolveConstantDesc(MethodHandles.Lookup lookup)`
  Resolves this descriptor reflectively, emulating the resolution behavior of JVMS 5.4.3 and the access control behavior of JVMS 5.4.4.
  `String`
  `toString()`
  Returns a compact textual description of this constant description, including the bootstrap method, the constant name and type, and the static bootstrap arguments.

  ### Methods declared in class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Method Details

  - ### of

    public static <E extends Enum<E>> Enum.EnumDesc<E> of(ClassDesc enumClass, String constantName)
    Returns a nominal descriptor for the specified `enum` class and name
    Type Parameters:
      `E` - the type of the enum constant
    Parameters:
      `enumClass` - a `ClassDesc` describing the `enum` class
      `constantName` - the unqualified name of the enum constant
    Returns:
      the nominal descriptor
    Throws:
      `NullPointerException` - if any argument is null
    See Java Virtual Machine Specification:
      4.2.2 Unqualified Names
    Since:
      12