# 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.
  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.

- 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 field or method 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 field or method type descriptor
  TypeDescriptor.OfField | An entity that has a field type descriptor
  TypeDescriptor.OfMethod | An entity that has a method type descriptor

- 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 consitutent symbolic parts.
  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.
  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 field or method type descriptor
  TypeDescriptor.OfField | An entity that has a field type descriptor
  TypeDescriptor.OfMethod | An entity that has a method type descriptor
  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 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.