# Uses of Interface
java.lang.constant.ConstantDesc

Packages that use ConstantDesc
Package
Description
java.lang
Provides classes that are fundamental to the design of the Java programming language.
java.lang.constant
Classes and interfaces to represent nominal descriptors for run-time entities such as classes or method handles, and classfile entities such as constant pool entries or `invokedynamic` call sites.
java.lang.invoke
The `java.lang.invoke` package provides low-level primitives for interacting with the Java Virtual Machine.

- ## Uses of ConstantDesc in java.lang

  Classes in java.lang that implement ConstantDesc
  Modifier and Type
  Class
  Description
  `final class`
  `Double`
  The `Double` class wraps a value of the primitive type `double` in an object.
  `static final class`
  `Enum.EnumDesc<E extends Enum<E>>`
  A nominal descriptor for an `enum` constant.
  `final class`
  `Float`
  The `Float` class wraps a value of primitive type `float` in an object.
  `final class`
  `Integer`
  The `Integer` class wraps a value of the primitive type `int` in an object.
  `final class`
  `Long`
  The `Long` class wraps a value of the primitive type `long` in an object.
  `final class`
  `String`
  The `String` class represents character strings.

- ## Uses of ConstantDesc in java.lang.constant

  Subinterfaces of ConstantDesc in java.lang.constant
  Modifier and Type
  Interface
  Description
  `interface`
  `ClassDesc`
  A nominal descriptor for a `Class` constant.
  `interface`
  `DirectMethodHandleDesc`
  A nominal descriptor for a direct `MethodHandle`.
  `interface`
  `MethodHandleDesc`
  A nominal descriptor for a `MethodHandle` constant.
  `interface`
  `MethodTypeDesc`
  A nominal descriptor for a MethodType constant.
  Classes in java.lang.constant that implement ConstantDesc
  Modifier and Type
  Class
  Description
  `class`
  `DynamicConstantDesc<T>`
  A nominal descriptor for a dynamic constant (one described in the constant pool with `Constant_Dynamic_info`.)
  Fields in java.lang.constant declared as ConstantDesc
  Modifier and Type
  Field
  Description
  `static final ConstantDesc`
  ConstantDescs.`NULL`
  Nominal descriptor representing the constant `null`
  Methods in java.lang.constant that return ConstantDesc
  Modifier and Type
  Method
  Description
  `ConstantDesc[]`
  DynamicCallSiteDesc.`bootstrapArgs()`
  Returns `ConstantDesc`s describing the bootstrap arguments for the `invokedynamic`.
  `ConstantDesc[]`
  DynamicConstantDesc.`bootstrapArgs()`
  Returns the bootstrap arguments for this constant.
  `static <T> ConstantDesc`
  DynamicConstantDesc.`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.
  Methods in java.lang.constant that return types with arguments of type ConstantDesc
  Modifier and Type
  Method
  Description
  `List<ConstantDesc>`
  DynamicConstantDesc.`bootstrapArgsList()`
  Returns the bootstrap arguments for this constant as an immutable `List`.
  `Optional<? extends ConstantDesc>`
  Constable.`describeConstable()`
  Returns an `Optional` containing the nominal descriptor for this instance, if one can be constructed, or an empty `Optional` if one cannot be constructed.
  Methods in java.lang.constant with parameters of type ConstantDesc
  Modifier and Type
  Method
  Description
  `static DynamicCallSiteDesc`
  DynamicCallSiteDesc.`of(DirectMethodHandleDesc bootstrapMethod, String invocationName, MethodTypeDesc invocationType, ConstantDesc... bootstrapArgs)`
  Creates a nominal descriptor for an `invokedynamic` call site.
  `static <T> DynamicConstantDesc<T>`
  DynamicConstantDesc.`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`
  DynamicConstantDesc.`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>`
  DynamicConstantDesc.`ofNamed(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)`
  Returns a nominal descriptor for a dynamic constant.
  `DynamicCallSiteDesc`
  DynamicCallSiteDesc.`withArgs(ConstantDesc... bootstrapArgs)`
  Returns a nominal descriptor for an `invokedynamic` call site whose bootstrap method, name, and invocation type are the same as this one, but with the specified bootstrap arguments.
  Constructors in java.lang.constant with parameters of type ConstantDesc
  Modifier
  Constructor
  Description
  `protected`
  `DynamicConstantDesc(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)`
  Creates a nominal descriptor for a dynamic constant.

- ## Uses of ConstantDesc in java.lang.invoke

  Classes in java.lang.invoke that implement ConstantDesc
  Modifier and Type
  Class
  Description
  `static final class`
  `VarHandle.VarHandleDesc`
  A nominal descriptor for a `VarHandle` constant.