# Uses of Class
java.lang.invoke.VarHandle

Packages that use VarHandle
Package
Description
java.lang.foreign
Provides low-level access to memory and functions outside the Java runtime.
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.foreign

  Methods in java.lang.foreign that return VarHandle
  Modifier and Type
  Method
  Description
  `VarHandle`
  MemoryLayout.`arrayElementVarHandle(MemoryLayout.PathElement... elements)`
  Creates a var handle that accesses adjacent elements in a memory segment at offsets selected by the given layout path, where the accessed elements have this layout, and where the initial layout in the path is this layout.
  `VarHandle`
  MemoryLayout.`varHandle(MemoryLayout.PathElement... elements)`
  Creates a var handle that accesses a memory segment at the offset selected by the given layout path, where the initial layout in the path is this layout.
  `VarHandle`
  ValueLayout.`varHandle()`
  Returns a var handle which can be used to access values described by this value layout, in a given memory segment.

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

  Subclasses with type arguments of type VarHandle in java.lang.invoke
  Modifier and Type
  Class
  Description
  `static final class`
  `VarHandle.VarHandleDesc`
  A nominal descriptor for a `VarHandle` constant.
  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`
  MethodHandles.`collectCoordinates(VarHandle target, int pos, MethodHandle filter)`
  Adapts a target var handle by pre-processing a sub-sequence of its coordinate values with a filter (a method handle).
  `static VarHandle`
  MethodHandles.`dropCoordinates(VarHandle target, int pos, Class<?>... valueTypes)`
  Returns a var handle which will discard some dummy coordinates before delegating to the target var handle.
  `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`
  MethodHandles.`filterCoordinates(VarHandle target, int pos, MethodHandle... filters)`
  Adapts a target var handle by pre-processing incoming coordinate values using unary filter functions.
  `static VarHandle`
  MethodHandles.`filterValue(VarHandle target, MethodHandle filterToTarget, MethodHandle filterFromTarget)`
  Adapts a target var handle by pre-processing incoming and outgoing values using a pair of filter functions.
  `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`
  MethodHandles.`insertCoordinates(VarHandle target, int pos, Object... values)`
  Provides a target var handle with one or more bound coordinates in advance of the var handle's invocation.
  `static VarHandle`
  MethodHandles.`permuteCoordinates(VarHandle target, List<Class<?>> newCoordinates, int... reorder)`
  Provides a var handle which adapts the coordinate values of the target var handle, by re-arranging them so that the new coordinates match the provided ones.
  `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`.
  `abstract VarHandle`
  VarHandle.`withInvokeBehavior()`
  Returns a VarHandle, with access to the same variable(s) as this VarHandle, but whose invocation behavior of access mode methods is adjusted to invoke behavior.
  `abstract VarHandle`
  VarHandle.`withInvokeExactBehavior()`
  Returns a VarHandle, with access to the same variable(s) as this VarHandle, but whose invocation behavior of access mode methods is adjusted to invoke-exact behavior.
  Methods in java.lang.invoke with parameters of type VarHandle
  Modifier and Type
  Method
  Description
  `static VarHandle`
  MethodHandles.`collectCoordinates(VarHandle target, int pos, MethodHandle filter)`
  Adapts a target var handle by pre-processing a sub-sequence of its coordinate values with a filter (a method handle).
  `static VarHandle`
  MethodHandles.`dropCoordinates(VarHandle target, int pos, Class<?>... valueTypes)`
  Returns a var handle which will discard some dummy coordinates before delegating to the target var handle.
  `static VarHandle`
  MethodHandles.`filterCoordinates(VarHandle target, int pos, MethodHandle... filters)`
  Adapts a target var handle by pre-processing incoming coordinate values using unary filter functions.
  `static VarHandle`
  MethodHandles.`filterValue(VarHandle target, MethodHandle filterToTarget, MethodHandle filterFromTarget)`
  Adapts a target var handle by pre-processing incoming and outgoing values using a pair of filter functions.
  `static VarHandle`
  MethodHandles.`insertCoordinates(VarHandle target, int pos, Object... values)`
  Provides a target var handle with one or more bound coordinates in advance of the var handle's invocation.
  `static VarHandle`
  MethodHandles.`permuteCoordinates(VarHandle target, List<Class<?>> newCoordinates, int... reorder)`
  Provides a var handle which adapts the coordinate values of the target var handle, by re-arranging them so that the new coordinates match the provided ones.
  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.