# Uses of Package
java.lang.invoke

Packages that use java.lang.invoke
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.
java.lang.runtime | The `java.lang.runtime` package provides low-level runtime support for the Java language.
jdk.dynalink | Contains interfaces and classes that are used to link an `invokedynamic` call site.
jdk.dynalink.beans | Contains the linker for ordinary Java objects.
jdk.dynalink.linker | Contains interfaces and classes needed by language runtimes to implement their own language-specific object models and type conversions.
jdk.dynalink.linker.support | Contains classes that make it more convenient for language runtimes to implement their own language-specific object models and type conversions by providing basic implementations of some classes as well as various utilities.
jdk.dynalink.support | Contains classes that make using Dynalink more convenient by providing basic implementations of some classes as well as various utilities.
jdk.incubator.foreign | Classes to support low-level, safe and efficient memory access.

- Classes in java.lang.invoke used by java.lang
  Class | Description
  --- | ---
  MethodHandles.Lookup | A lookup object is a factory for creating method handles, when the creation requires access checking.
  MethodType | A method type represents the arguments and return type accepted and returned by a method handle, or the arguments and return type passed and expected by a method handle caller.
  TypeDescriptor | An entity that has a type descriptor.
  TypeDescriptor.OfField | An entity that has a field type descriptor.

- Classes in java.lang.invoke used by java.lang.constant
  Class | Description
  --- | ---
  CallSite | A `CallSite` is a holder for a variable `MethodHandle`, which is called its `target`.
  MethodHandles.Lookup | A lookup object is a factory for creating method handles, when the creation requires access checking.
  TypeDescriptor | An entity that has a type descriptor.
  TypeDescriptor.OfField | An entity that has a field type descriptor.
  TypeDescriptor.OfMethod | An entity that has a method type descriptor Method descriptors conforming to JVMS 4.3.3 can be described nominally via `MethodType::describeConstable`; otherwise they cannot be described nominally.

- Classes in java.lang.invoke used by java.lang.invoke
  Class | Description
  --- | ---
  CallSite | A `CallSite` is a holder for a variable `MethodHandle`, which is called its `target`.
  LambdaConversionException | LambdaConversionException
  MethodHandle | A method handle is a typed, directly executable reference to an underlying method, constructor, field, or similar low-level operation, with optional transformations of arguments or return values.
  MethodHandleInfo | A symbolic reference obtained by cracking a direct method handle into its constituent symbolic parts.
  MethodHandles.Lookup | A lookup object is a factory for creating method handles, when the creation requires access checking.
  MethodHandles.Lookup.ClassOption | The set of class options that specify whether a hidden class created by `Lookup::defineHiddenClass` method is dynamically added as a new member to the nest of a lookup class and/or whether a hidden class has a strong relationship with the class loader marked as its defining loader.
  MethodType | A method type represents the arguments and return type accepted and returned by a method handle, or the arguments and return type passed and expected by a method handle caller.
  MutableCallSite | A `MutableCallSite` is a `CallSite` whose target variable behaves like an ordinary field.
  StringConcatException | StringConcatException is thrown by `StringConcatFactory` when linkage invariants are violated.
  SwitchPoint | A `SwitchPoint` is an object which can publish state transitions to other threads.
  TypeDescriptor | An entity that has a type descriptor.
  TypeDescriptor.OfField | An entity that has a field type descriptor.
  TypeDescriptor.OfMethod | An entity that has a method type descriptor Method descriptors conforming to JVMS 4.3.3 can be described nominally via `MethodType::describeConstable`; otherwise they cannot be described nominally.
  VarHandle | A VarHandle is a dynamically strongly typed reference to a variable, or to a parametrically-defined family of variables, including static fields, non-static fields, array elements, or components of an off-heap data structure.
  VarHandle.AccessMode | The set of access modes that specify how a variable, referenced by a VarHandle, is accessed.
  VarHandle.VarHandleDesc | A nominal descriptor for a `VarHandle` constant.

- Classes in java.lang.invoke used by java.lang.runtime
  Class | Description
  --- | ---
  MethodHandle | A method handle is a typed, directly executable reference to an underlying method, constructor, field, or similar low-level operation, with optional transformations of arguments or return values.
  MethodHandles.Lookup | A lookup object is a factory for creating method handles, when the creation requires access checking.
  TypeDescriptor | An entity that has a type descriptor.

- Classes in java.lang.invoke used by jdk.dynalink
  Class | Description
  --- | ---
  MethodHandle | A method handle is a typed, directly executable reference to an underlying method, constructor, field, or similar low-level operation, with optional transformations of arguments or return values.
  MethodHandles.Lookup | A lookup object is a factory for creating method handles, when the creation requires access checking.
  MethodType | A method type represents the arguments and return type accepted and returned by a method handle, or the arguments and return type passed and expected by a method handle caller.

- Classes in java.lang.invoke used by jdk.dynalink.beans
  Class | Description
  --- | ---
  MethodHandle | A method handle is a typed, directly executable reference to an underlying method, constructor, field, or similar low-level operation, with optional transformations of arguments or return values.

- Classes in java.lang.invoke used by jdk.dynalink.linker
  Class | Description
  --- | ---
  MethodHandle | A method handle is a typed, directly executable reference to an underlying method, constructor, field, or similar low-level operation, with optional transformations of arguments or return values.
  MethodHandles.Lookup | A lookup object is a factory for creating method handles, when the creation requires access checking.
  MethodType | A method type represents the arguments and return type accepted and returned by a method handle, or the arguments and return type passed and expected by a method handle caller.
  SwitchPoint | A `SwitchPoint` is an object which can publish state transitions to other threads.

- Classes in java.lang.invoke used by jdk.dynalink.linker.support
  Class | Description
  --- | ---
  MethodHandle | A method handle is a typed, directly executable reference to an underlying method, constructor, field, or similar low-level operation, with optional transformations of arguments or return values.
  MethodHandles.Lookup | A lookup object is a factory for creating method handles, when the creation requires access checking.
  MethodType | A method type represents the arguments and return type accepted and returned by a method handle, or the arguments and return type passed and expected by a method handle caller.

- Classes in java.lang.invoke used by jdk.dynalink.support
  Class | Description
  --- | ---
  CallSite | A `CallSite` is a holder for a variable `MethodHandle`, which is called its `target`.
  MutableCallSite | A `MutableCallSite` is a `CallSite` whose target variable behaves like an ordinary field.

- Classes in java.lang.invoke used by jdk.incubator.foreign
  Class | Description
  --- | ---
  MethodHandle | A method handle is a typed, directly executable reference to an underlying method, constructor, field, or similar low-level operation, with optional transformations of arguments or return values.
  VarHandle | A VarHandle is a dynamically strongly typed reference to a variable, or to a parametrically-defined family of variables, including static fields, non-static fields, array elements, or components of an off-heap data structure.