# java.lang.invoke

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

# java.lang.invoke

## Interfaces

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [MethodHandleInfo](https://developer.android.com/reference/java/lang/invoke/MethodHandleInfo)                                                                                                                                                                                                                                          | A symbolic reference obtained by cracking a direct method handle into its consitutent symbolic parts.            |
| [TypeDescriptor](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor)                                                                                                                                                                                                                                              | An entity that has a type descriptor.                                                                            |
| [TypeDescriptor.OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)\<F extends[OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)\<F\>\>                                                                                                                  | An entity that has a field type descriptor.                                                                      |
| [TypeDescriptor.OfMethod](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfMethod)\<F extends[OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)\<F\>, M extends[OfMethod](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfMethod)\<F, M\>\> | An entity that has a method type descriptor Method descriptors conforming to JVMS {@jvms 4.3.3} can be described |

## Classes

|-------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [CallSite](https://developer.android.com/reference/java/lang/invoke/CallSite)                         | A`CallSite`is a holder for a variable[MethodHandle](https://developer.android.com/reference/java/lang/invoke/MethodHandle), which is called its`target`.                                                                          |
| [ConstantCallSite](https://developer.android.com/reference/java/lang/invoke/ConstantCallSite)         | A`ConstantCallSite`is a[CallSite](https://developer.android.com/reference/java/lang/invoke/CallSite)whose target is permanent, and can never be changed.                                                                          |
| [MethodHandle](https://developer.android.com/reference/java/lang/invoke/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](https://developer.android.com/reference/java/lang/invoke/MethodHandles)               | This class consists exclusively of static methods that operate on or return method handles.                                                                                                                                       |
| [MethodHandles.Lookup](https://developer.android.com/reference/java/lang/invoke/MethodHandles.Lookup) | A*lookup object*is a factory for creating method handles, when the creation requires access checking.                                                                                                                             |
| [MethodType](https://developer.android.com/reference/java/lang/invoke/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](https://developer.android.com/reference/java/lang/invoke/MutableCallSite)           | A`MutableCallSite`is a[CallSite](https://developer.android.com/reference/java/lang/invoke/CallSite)whose target variable behaves like an ordinary field.                                                                          |
| [VarHandle](https://developer.android.com/reference/java/lang/invoke/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. |
| [VolatileCallSite](https://developer.android.com/reference/java/lang/invoke/VolatileCallSite)         | A`VolatileCallSite`is a[CallSite](https://developer.android.com/reference/java/lang/invoke/CallSite)whose target acts like a volatile variable.                                                                                   |

## Enums

|-------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|
| [VarHandle.AccessMode](https://developer.android.com/reference/java/lang/invoke/VarHandle.AccessMode) | The set of access modes that specify how a variable, referenced by a VarHandle, is accessed. |

## Exceptions

|-----------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
| [LambdaConversionException](https://developer.android.com/reference/java/lang/invoke/LambdaConversionException) | LambdaConversionException                                                                                                            |
| [StringConcatException](https://developer.android.com/reference/java/lang/invoke/StringConcatException)         | StringConcatException is thrown by[ERROR(/StringConcatFactory)](https://developer.android.com/)when linkage invariants are violated. |
| [WrongMethodTypeException](https://developer.android.com/reference/java/lang/invoke/WrongMethodTypeException)   | Thrown to indicate that code has attempted to call a method handle via the wrong method type.                                        |

-

  ## Interfaces

  - [MethodHandleInfo](https://developer.android.com/reference/java/lang/invoke/MethodHandleInfo)
  - [TypeDescriptor](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor)
  - [TypeDescriptor.OfField](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfField)
  - [TypeDescriptor.OfMethod](https://developer.android.com/reference/java/lang/invoke/TypeDescriptor.OfMethod)
-

  ## Classes

  - [CallSite](https://developer.android.com/reference/java/lang/invoke/CallSite)
  - [ConstantCallSite](https://developer.android.com/reference/java/lang/invoke/ConstantCallSite)
  - [MethodHandle](https://developer.android.com/reference/java/lang/invoke/MethodHandle)
  - [MethodHandles](https://developer.android.com/reference/java/lang/invoke/MethodHandles)
  - [MethodHandles.Lookup](https://developer.android.com/reference/java/lang/invoke/MethodHandles.Lookup)
  - [MethodType](https://developer.android.com/reference/java/lang/invoke/MethodType)
  - [MutableCallSite](https://developer.android.com/reference/java/lang/invoke/MutableCallSite)
  - [VarHandle](https://developer.android.com/reference/java/lang/invoke/VarHandle)
  - [VolatileCallSite](https://developer.android.com/reference/java/lang/invoke/VolatileCallSite)
-

  ## Enums

  - [VarHandle.AccessMode](https://developer.android.com/reference/java/lang/invoke/VarHandle.AccessMode)
-

  ## Exceptions

  - [LambdaConversionException](https://developer.android.com/reference/java/lang/invoke/LambdaConversionException)
  - [StringConcatException](https://developer.android.com/reference/java/lang/invoke/StringConcatException)
  - [WrongMethodTypeException](https://developer.android.com/reference/java/lang/invoke/WrongMethodTypeException)