## Uses of Class
java.lang.invoke.VarHandle

- Packages that use VarHandle
  Package | Description
  --- | ---
  java.lang.invoke | The `java.lang.invoke` package provides low-level primitives for interacting with the Java Virtual Machine.

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

    Methods in java.lang.invoke that return VarHandle
    Modifier and Type | Method | Description
    --- | --- | ---
    `static VarHandle` | MethodHandles.`arrayElementVarHandle​(Class<?> arrayClass)` | Produces a VarHandle giving access to elements of an array of type `arrayClass`.
    `static VarHandle` | ConstantBootstraps.`arrayVarHandle​(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> arrayClass)` | Finds a `VarHandle` for an array type.
    `static VarHandle` | MethodHandles.`byteArrayViewVarHandle​(Class<?> viewArrayClass, ByteOrder byteOrder)` | Produces a VarHandle giving access to elements of a `byte[]` array viewed as if it were a different primitive array type, such as `int[]` or `long[]`.
    `static VarHandle` | MethodHandles.`byteBufferViewVarHandle​(Class<?> viewArrayClass, ByteOrder byteOrder)` | Produces a VarHandle giving access to elements of a `ByteBuffer` viewed as if it were an array of elements of a different primitive component type to that of `byte`, such as `int[]` or `long[]`.
    `static VarHandle` | ConstantBootstraps.`fieldVarHandle​(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)` | Finds a `VarHandle` for an instance field.
    `VarHandle` | MethodHandles.Lookup.`findStaticVarHandle​(Class<?> decl, String name, Class<?> type)` | Produces a VarHandle giving access to a static field `name` of type `type` declared in a class of type `decl`.
    `VarHandle` | MethodHandles.Lookup.`findVarHandle​(Class<?> recv, String name, Class<?> type)` | Produces a VarHandle giving access to a non-static field `name` of type `type` declared in a class of type `recv`.
    `static VarHandle` | ConstantBootstraps.`staticFieldVarHandle​(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)` | Finds a `VarHandle` for a static field.
    `VarHandle` | MethodHandles.Lookup.`unreflectVarHandle​(Field f)` | Produces a VarHandle giving access to a reflected field `f` of type `T` declared in a class of type `R`.

    Method parameters in java.lang.invoke with type arguments of type VarHandle
    Modifier and Type | Method | Description
    --- | --- | ---
    `static VarHandle` | ConstantBootstraps.`arrayVarHandle​(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> arrayClass)` | Finds a `VarHandle` for an array type.
    `static VarHandle` | ConstantBootstraps.`fieldVarHandle​(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)` | Finds a `VarHandle` for an instance field.
    `static VarHandle` | ConstantBootstraps.`staticFieldVarHandle​(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)` | Finds a `VarHandle` for a static field.