VarHandle.VarHandleDesc (Java SE 25 & JDK 25)
Description: declaration: module: java.base, package: java.lang.invoke, class: VarHandle, class: VarHandleDesc
Keywords: java.lang.invoke.VarHandle.VarHandleDesc class

# Class VarHandle.VarHandleDesc

java.lang.Object
java.lang.constant.DynamicConstantDesc<VarHandle>
java.lang.invoke.VarHandle.VarHandleDesc

All Implemented Interfaces:
  `ConstantDesc`

Enclosing class:
  `VarHandle`

public static final class VarHandle.VarHandleDesc extends DynamicConstantDesc<VarHandle>
A nominal descriptor for a `VarHandle` constant.

Since:
  12

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static VarHandle.VarHandleDesc`
  `ofArray(ClassDesc arrayClass)`
  Returns a VarHandle.VarHandleDesc corresponding to a `VarHandle` for an array type.
  `static VarHandle.VarHandleDesc`
  `ofField(ClassDesc declaringClass, String name, ClassDesc fieldType)`
  Returns a VarHandle.VarHandleDesc corresponding to a `VarHandle` for an instance field.
  `static VarHandle.VarHandleDesc`
  `ofStaticField(ClassDesc declaringClass, String name, ClassDesc fieldType)`
  Returns a VarHandle.VarHandleDesc corresponding to a `VarHandle` for a static field.
  `String`
  `toString()`
  Returns a compact textual description of this constant description.
  `ClassDesc`
  `varType()`
  Returns a `ClassDesc` describing the type of the variable described by this descriptor.

  ### Methods declared in class DynamicConstantDesc

  `bootstrapArgs, bootstrapArgsList, bootstrapMethod, constantName, constantType, equals, hashCode, of, of, ofCanonical, ofNamed, resolveConstantDesc`

  ### Methods declared in class Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Method Details

  - ### ofField

    public static VarHandle.VarHandleDesc ofField(ClassDesc declaringClass, String name, ClassDesc fieldType)
    Returns a VarHandle.VarHandleDesc corresponding to a `VarHandle` for an instance field.
    Parameters:
      `declaringClass` - a `ClassDesc` describing the declaring class, for field var handles
      `name` - the unqualified name of the field
      `fieldType` - a `ClassDesc` describing the type of the field
    Returns:
      the VarHandle.VarHandleDesc
    Throws:
      `NullPointerException` - if any of the arguments are null
    See Java Virtual Machine Specification:
      4.2.2 Unqualified Names

  - ### ofStaticField

    public static VarHandle.VarHandleDesc ofStaticField(ClassDesc declaringClass, String name, ClassDesc fieldType)
    Returns a VarHandle.VarHandleDesc corresponding to a `VarHandle` for a static field.
    Parameters:
      `declaringClass` - a `ClassDesc` describing the declaring class, for field var handles
      `name` - the unqualified name of the field
      `fieldType` - a `ClassDesc` describing the type of the field
    Returns:
      the VarHandle.VarHandleDesc
    Throws:
      `NullPointerException` - if any of the arguments are null
    See Java Virtual Machine Specification:
      4.2.2 Unqualified Names

  - ### ofArray

    public static VarHandle.VarHandleDesc ofArray(ClassDesc arrayClass)
    Returns a VarHandle.VarHandleDesc corresponding to a `VarHandle` for an array type.
    Parameters:
      `arrayClass` - a `ClassDesc` describing the type of the array
    Returns:
      the VarHandle.VarHandleDesc
    Throws:
      `NullPointerException` - if any of the arguments are null

  - ### varType

    public ClassDesc varType()
    Returns a `ClassDesc` describing the type of the variable described by this descriptor.
    Returns:
      the variable type

  - ### toString

    public String toString()
    Returns a compact textual description of this constant description. For a field VarHandle, includes the owner, name, and type of the field, and whether it is static; for an array VarHandle, the name of the component type.
    Overrides:
      `toString` in class `DynamicConstantDesc<VarHandle>`
    Returns:
      A compact textual description of this descriptor