## Uses of Class
java.lang.invoke.MethodHandles.Lookup

Packages that use MethodHandles.Lookup
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.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.

### Uses of MethodHandles.Lookup in java.lang.invoke

Methods in java.lang.invoke that return MethodHandles.Lookup
`MethodHandles.Lookup` MethodHandles.Lookup.`dropLookupMode​(int modeToDrop)` Creates a lookup on the same lookup class which this lookup object finds members, but with a lookup mode that has lost the given lookup mode.
`MethodHandles.Lookup` MethodHandles.Lookup.`in​(Class<?> requestedLookupClass)` Creates a lookup on the specified new lookup class.
`static MethodHandles.Lookup` MethodHandles.`lookup()` Returns a `lookup object` with full capabilities to emulate all supported bytecode behaviors of the caller.
`static MethodHandles.Lookup` MethodHandles.`privateLookupIn​(Class<?> targetClass, MethodHandles.Lookup lookup)` Returns a `lookup object` with full capabilities to emulate all supported bytecode behaviors, including private access, on a target class.
`static MethodHandles.Lookup` MethodHandles.`publicLookup()` Returns a `lookup object` which is trusted minimally.

Methods in java.lang.invoke with parameters of type MethodHandles.Lookup
`static CallSite` LambdaMetafactory.`altMetafactory​(MethodHandles.Lookup caller, String invokedName, MethodType invokedType, Object... args)` Facilitates the creation of simple "function objects" that implement one or more interfaces by delegation to a provided `MethodHandle`, after appropriate type adaptation and partial evaluation of arguments.
`static VarHandle` ConstantBootstraps.`arrayVarHandle​(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> arrayClass)` Finds a `VarHandle` for an array type.
`static <E extends Enum<E>> E` ConstantBootstraps.`enumConstant​(MethodHandles.Lookup lookup, String name, Class<E> type)` Returns an `enum` constant of the type specified by `type` with the name specified by `name`.
`static VarHandle` ConstantBootstraps.`fieldVarHandle​(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)` Finds a `VarHandle` for an instance field.
`static Object` ConstantBootstraps.`getStaticFinal​(MethodHandles.Lookup lookup, String name, Class<?> type)` Returns the value of a static final field declared in the class which is the same as the field's type (or, for primitive-valued fields, declared in the wrapper class.)
`static Object` ConstantBootstraps.`getStaticFinal​(MethodHandles.Lookup lookup, String name, Class<?> type, Class<?> declaringClass)` Returns the value of a static final field.
`static Object` ConstantBootstraps.`invoke​(MethodHandles.Lookup lookup, String name, Class<?> type, MethodHandle handle, Object... args)` Returns the result of invoking a method handle with the provided arguments.
`static CallSite` StringConcatFactory.`makeConcat​(MethodHandles.Lookup lookup, String name, MethodType concatType)` Facilitates the creation of optimized String concatenation methods, that can be used to efficiently concatenate a known number of arguments of known types, possibly after type adaptation and partial evaluation of arguments.
`static CallSite` StringConcatFactory.`makeConcatWithConstants​(MethodHandles.Lookup lookup, String name, MethodType concatType, String recipe, Object... constants)` Facilitates the creation of optimized String concatenation methods, that can be used to efficiently concatenate a known number of arguments of known types, possibly after type adaptation and partial evaluation of arguments.

`static CallSite`

LambdaMetafactory.`metafactory​(MethodHandles.Lookup caller, String invokedName, MethodType invokedType, MethodType samMethodType, MethodHandle implMethod, MethodType instantiatedMethodType)`

Facilitates the creation of simple "function objects" that implement one or more interfaces by delegation to a provided `MethodHandle`, after appropriate type adaptation and partial evaluation of arguments.

`static Object` ConstantBootstraps.`nullConstant​(MethodHandles.Lookup lookup, String name, Class<?> type)` Returns a `null` object reference for the reference type specified by `type`.
`static Class<?>` ConstantBootstraps.`primitiveClass​(MethodHandles.Lookup lookup, String name, Class<?> type)` Returns a `Class` mirror for the primitive type whose type descriptor is specified by `name`.
`static MethodHandles.Lookup` MethodHandles.`privateLookupIn​(Class<?> targetClass, MethodHandles.Lookup lookup)` Returns a `lookup object` with full capabilities to emulate all supported bytecode behaviors, including private access, on a target class.
`<T extends Member> T` MethodHandleInfo.`reflectAs​(Class<T> expected, MethodHandles.Lookup lookup)` Reflects the underlying member as a method, constructor, or field object.
`static VarHandle` ConstantBootstraps.`staticFieldVarHandle​(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)` Finds a `VarHandle` for a static field.

### Uses of MethodHandles.Lookup in jdk.dynalink

Methods in jdk.dynalink that return MethodHandles.Lookup
`MethodHandles.Lookup` SecureLookupSupplier.`getLookup()` Returns the lookup secured by this `SecureLookupSupplier`.
`protected MethodHandles.Lookup` SecureLookupSupplier.`getLookupPrivileged()` Returns the value of `SecureLookupSupplier.getLookup()` without a security check.

Constructors in jdk.dynalink with parameters of type MethodHandles.Lookup
`CallSiteDescriptor​(MethodHandles.Lookup lookup, Operation operation, MethodType methodType)` Creates a new call site descriptor.
`SecureLookupSupplier​(MethodHandles.Lookup lookup)` Creates a new secure lookup supplier, securing the passed lookup.

### Uses of MethodHandles.Lookup in jdk.dynalink.linker

Method parameters in jdk.dynalink.linker with type arguments of type MethodHandles.Lookup
`GuardedInvocation` GuardingTypeConverterFactory.`convertToType​(Class<?> sourceType, Class<?> targetType, Supplier<MethodHandles.Lookup> lookupSupplier)` Returns a guarded type conversion that receives a value of the specified source type and returns a value converted to the specified target type.

### Uses of MethodHandles.Lookup in jdk.dynalink.linker.support

Methods in jdk.dynalink.linker.support with parameters of type MethodHandles.Lookup
`static MethodHandle` Lookup.`findOwnSpecial​(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes)` Given a lookup, finds using `Lookup.findSpecial(Class, String, MethodType)` a method on that lookup's class.
`static MethodHandle` Lookup.`findOwnStatic​(MethodHandles.Lookup lookup, String name, Class<?> rtype, Class<?>... ptypes)` Given a lookup, finds using `Lookup.findStatic(Class, String, MethodType)` a method on that lookup's class.
`static MethodHandle` Lookup.`unreflect​(MethodHandles.Lookup lookup, Method m)` Performs a `unreflect(Method)`, converting any encountered `IllegalAccessException` into an `IllegalAccessError`.
`static MethodHandle` Lookup.`unreflectConstructor​(MethodHandles.Lookup lookup, Constructor<?> c)` Performs a `unreflectConstructor(Constructor)`, converting any encountered `IllegalAccessException` into an `IllegalAccessError`.

Constructors in jdk.dynalink.linker.support with parameters of type MethodHandles.Lookup
`Lookup​(MethodHandles.Lookup lookup)` Creates a new instance, bound to an instance of `MethodHandles.Lookup`.