Uses of Class
java.lang.invoke.MethodHandle
Package | Description |
---|---|
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. |
-
Uses of MethodHandle in java.lang.invoke
Methods in java.lang.invoke that return MethodHandle Modifier and Type Method Description static MethodHandle
MethodHandles. arrayConstructor(Class<?> arrayClass)
Produces a method handle constructing arrays of a desired type, as if by theanewarray
bytecode.static MethodHandle
MethodHandles. arrayElementGetter(Class<?> arrayClass)
Produces a method handle giving read access to elements of an array, as if by theaaload
bytecode.static MethodHandle
MethodHandles. arrayElementSetter(Class<?> arrayClass)
Produces a method handle giving write access to elements of an array, as if by theastore
bytecode.static MethodHandle
MethodHandles. arrayLength(Class<?> arrayClass)
Produces a method handle returning the length of an array, as if by thearraylength
bytecode.MethodHandle
MethodHandle. asCollector(int collectArgPos, Class<?> arrayType, int arrayLength)
Makes an array-collecting method handle, which accepts a given number of positional arguments starting at a given position, and collects them into an array argument.MethodHandle
MethodHandle. asCollector(Class<?> arrayType, int arrayLength)
Makes an array-collecting method handle, which accepts a given number of trailing positional arguments and collects them into an array argument.MethodHandle
MethodHandle. asFixedArity()
Makes a fixed arity method handle which is otherwise equivalent to the current method handle.MethodHandle
MethodHandle. asSpreader(int spreadArgPos, Class<?> arrayType, int arrayLength)
Makes an array-spreading method handle, which accepts an array argument at a given position and spreads its elements as positional arguments in place of the array.MethodHandle
MethodHandle. asSpreader(Class<?> arrayType, int arrayLength)
Makes an array-spreading method handle, which accepts a trailing array argument and spreads its elements as positional arguments.MethodHandle
MethodHandle. asType(MethodType newType)
Produces an adapter method handle which adapts the type of the current method handle to a new type.MethodHandle
MethodHandle. asVarargsCollector(Class<?> arrayType)
Makes a variable arity adapter which is able to accept any number of trailing positional arguments and collect them into an array argument.MethodHandle
MethodHandles.Lookup. bind(Object receiver, String name, MethodType type)
Produces an early-bound method handle for a non-static method.MethodHandle
MethodHandle. bindTo(Object x)
Binds a valuex
to the first argument of a method handle, without invoking it.static MethodHandle
MethodHandles. catchException(MethodHandle target, Class<? extends Throwable> exType, MethodHandle handler)
Makes a method handle which adapts a target method handle, by running it inside an exception handler.static MethodHandle
MethodHandles. collectArguments(MethodHandle target, int pos, MethodHandle filter)
Adapts a target method handle by pre-processing a sub-sequence of its arguments with a filter (another method handle).static MethodHandle
MethodHandles. constant(Class<?> type, Object value)
Produces a method handle of the requested return type which returns the given constant value every time it is invoked.static MethodHandle
MethodHandles. countedLoop(MethodHandle iterations, MethodHandle init, MethodHandle body)
Constructs a loop that runs a given number of iterations.static MethodHandle
MethodHandles. countedLoop(MethodHandle start, MethodHandle end, MethodHandle init, MethodHandle body)
Constructs a loop that counts over a range of numbers.static MethodHandle
MethodHandles. doWhileLoop(MethodHandle init, MethodHandle body, MethodHandle pred)
Constructs ado-while
loop from an initializer, a body, and a predicate.static MethodHandle
MethodHandles. dropArguments(MethodHandle target, int pos, Class<?>... valueTypes)
Produces a method handle which will discard some dummy arguments before calling some other specified target method handle.static MethodHandle
MethodHandles. dropArguments(MethodHandle target, int pos, List<Class<?>> valueTypes)
Produces a method handle which will discard some dummy arguments before calling some other specified target method handle.static MethodHandle
MethodHandles. dropArgumentsToMatch(MethodHandle target, int skip, List<Class<?>> newTypes, int pos)
Adapts a target method handle to match the given parameter type list.abstract MethodHandle
CallSite. dynamicInvoker()
Produces a method handle equivalent to an invokedynamic instruction which has been linked to this call site.MethodHandle
ConstantCallSite. dynamicInvoker()
Returns this call site's permanent target.static MethodHandle
MethodHandles. empty(MethodType type)
Produces a method handle of the requested type which ignores any arguments, does nothing, and returns a suitable default depending on the return type.static MethodHandle
MethodHandles. exactInvoker(MethodType type)
Produces a special invoker method handle which can be used to invoke any method handle of the given type, as if byinvokeExact
.static MethodHandle
MethodHandles. explicitCastArguments(MethodHandle target, MethodType newType)
Produces a method handle which adapts the type of the given method handle to a new type by pairwise argument and return type conversion.static MethodHandle
MethodHandles. filterArguments(MethodHandle target, int pos, MethodHandle... filters)
Adapts a target method handle by pre-processing one or more of its arguments, each with its own unary filter function, and then calling the target with each pre-processed argument replaced by the result of its corresponding filter function.static MethodHandle
MethodHandles. filterReturnValue(MethodHandle target, MethodHandle filter)
Adapts a target method handle by post-processing its return value (if any) with a filter (another method handle).MethodHandle
MethodHandles.Lookup. findConstructor(Class<?> refc, MethodType type)
Produces a method handle which creates an object and initializes it, using the constructor of the specified type.MethodHandle
MethodHandles.Lookup. findGetter(Class<?> refc, String name, Class<?> type)
Produces a method handle giving read access to a non-static field.MethodHandle
MethodHandles.Lookup. findSetter(Class<?> refc, String name, Class<?> type)
Produces a method handle giving write access to a non-static field.MethodHandle
MethodHandles.Lookup. findSpecial(Class<?> refc, String name, MethodType type, Class<?> specialCaller)
Produces an early-bound method handle for a virtual method.MethodHandle
MethodHandles.Lookup. findStatic(Class<?> refc, String name, MethodType type)
Produces a method handle for a static method.MethodHandle
MethodHandles.Lookup. findStaticGetter(Class<?> refc, String name, Class<?> type)
Produces a method handle giving read access to a static field.MethodHandle
MethodHandles.Lookup. findStaticSetter(Class<?> refc, String name, Class<?> type)
Produces a method handle giving write access to a static field.MethodHandle
MethodHandles.Lookup. findVirtual(Class<?> refc, String name, MethodType type)
Produces a method handle for a virtual method.static MethodHandle
MethodHandles. foldArguments(MethodHandle target, int pos, MethodHandle combiner)
Adapts a target method handle by pre-processing some of its arguments, starting at a given position, and then calling the target with the result of the pre-processing, inserted into the original sequence of arguments just before the folded arguments.static MethodHandle
MethodHandles. foldArguments(MethodHandle target, MethodHandle combiner)
Adapts a target method handle by pre-processing some of its arguments, and then calling the target with the result of the pre-processing, inserted into the original sequence of arguments.abstract MethodHandle
CallSite. getTarget()
Returns the target method of the call site, according to the behavior defined by this call site's specific class.MethodHandle
ConstantCallSite. getTarget()
Returns the target method of the call site, which behaves like afinal
field of theConstantCallSite
.MethodHandle
MutableCallSite. getTarget()
Returns the target method of the call site, which behaves like a normal field of theMutableCallSite
.MethodHandle
VolatileCallSite. getTarget()
Returns the target method of the call site, which behaves like avolatile
field of theVolatileCallSite
.static MethodHandle
MethodHandles. guardWithTest(MethodHandle test, MethodHandle target, MethodHandle fallback)
Makes a method handle which adapts a target method handle, by guarding it with a test, a boolean-valued method handle.MethodHandle
SwitchPoint. guardWithTest(MethodHandle target, MethodHandle fallback)
Returns a method handle which always delegates either to the target or the fallback.static MethodHandle
MethodHandles. identity(Class<?> type)
Produces a method handle which returns its sole argument when invoked.static MethodHandle
MethodHandles. insertArguments(MethodHandle target, int pos, Object... values)
Provides a target method handle with one or more bound arguments in advance of the method handle's invocation.static MethodHandle
MethodHandles. invoker(MethodType type)
Produces a special invoker method handle which can be used to invoke any method handle compatible with the given type, as if byinvoke
.static MethodHandle
MethodHandles. iteratedLoop(MethodHandle iterator, MethodHandle init, MethodHandle body)
Constructs a loop that ranges over the values produced by anIterator<T>
.static MethodHandle
MethodHandles. loop(MethodHandle[]... clauses)
Constructs a method handle representing a loop with several loop variables that are updated and checked upon each iteration.static MethodHandle
MethodHandles. permuteArguments(MethodHandle target, MethodType newType, int... reorder)
Produces a method handle which adapts the calling sequence of the given method handle to a new type, by reordering the arguments.static MethodHandle
MethodHandles. spreadInvoker(MethodType type, int leadingArgCount)
Produces a method handle which will invoke any method handle of the giventype
, with a given number of trailing arguments replaced by a single trailingObject[]
array.static MethodHandle
MethodHandles. throwException(Class<?> returnType, Class<? extends Throwable> exType)
Produces a method handle which will throw exceptions of the givenexType
.MethodHandle
VarHandle. toMethodHandle(VarHandle.AccessMode accessMode)
Obtains a method handle bound to this VarHandle and the given access mode.static MethodHandle
MethodHandles. tryFinally(MethodHandle target, MethodHandle cleanup)
Makes a method handle that adapts atarget
method handle by wrapping it in atry-finally
block.MethodHandle
MethodHandles.Lookup. unreflect(Method m)
Makes a direct method handle to m, if the lookup class has permission.MethodHandle
MethodHandles.Lookup. unreflectConstructor(Constructor<?> c)
Produces a method handle for a reflected constructor.MethodHandle
MethodHandles.Lookup. unreflectGetter(Field f)
Produces a method handle giving read access to a reflected field.MethodHandle
MethodHandles.Lookup. unreflectSetter(Field f)
Produces a method handle giving write access to a reflected field.MethodHandle
MethodHandles.Lookup. unreflectSpecial(Method m, Class<?> specialCaller)
Produces a method handle for a reflected method.static MethodHandle
MethodHandles. varHandleExactInvoker(VarHandle.AccessMode accessMode, MethodType type)
Produces a special invoker method handle which can be used to invoke a signature-polymorphic access mode method on any VarHandle whose associated access mode type is compatible with the given type.static MethodHandle
MethodHandles. varHandleInvoker(VarHandle.AccessMode accessMode, MethodType type)
Produces a special invoker method handle which can be used to invoke a signature-polymorphic access mode method on any VarHandle whose associated access mode type is compatible with the given type.static MethodHandle
MethodHandles. whileLoop(MethodHandle init, MethodHandle pred, MethodHandle body)
Constructs awhile
loop from an initializer, a body, and a predicate.MethodHandle
MethodHandle. withVarargs(boolean makeVarargs)
Adapts this method handle to be variable arity if the boolean flag is true, else fixed arity.static MethodHandle
MethodHandleProxies. wrapperInstanceTarget(Object x)
Produces or recovers a target method handle which is behaviorally equivalent to the unique method of this wrapper instance.static MethodHandle
MethodHandles. zero(Class<?> type)
Produces a constant method handle of the requested return type which returns the default value for that type every time it is invoked.Methods in java.lang.invoke with parameters of type MethodHandle Modifier and Type Method Description static <T> T
MethodHandleProxies. asInterfaceInstance(Class<T> intfc, MethodHandle target)
Produces an instance of the given single-method interface which redirects its calls to the given method handle.static MethodHandle
MethodHandles. catchException(MethodHandle target, Class<? extends Throwable> exType, MethodHandle handler)
Makes a method handle which adapts a target method handle, by running it inside an exception handler.static MethodHandle
MethodHandles. collectArguments(MethodHandle target, int pos, MethodHandle filter)
Adapts a target method handle by pre-processing a sub-sequence of its arguments with a filter (another method handle).static MethodHandle
MethodHandles. countedLoop(MethodHandle iterations, MethodHandle init, MethodHandle body)
Constructs a loop that runs a given number of iterations.static MethodHandle
MethodHandles. countedLoop(MethodHandle start, MethodHandle end, MethodHandle init, MethodHandle body)
Constructs a loop that counts over a range of numbers.static MethodHandle
MethodHandles. doWhileLoop(MethodHandle init, MethodHandle body, MethodHandle pred)
Constructs ado-while
loop from an initializer, a body, and a predicate.static MethodHandle
MethodHandles. dropArguments(MethodHandle target, int pos, Class<?>... valueTypes)
Produces a method handle which will discard some dummy arguments before calling some other specified target method handle.static MethodHandle
MethodHandles. dropArguments(MethodHandle target, int pos, List<Class<?>> valueTypes)
Produces a method handle which will discard some dummy arguments before calling some other specified target method handle.static MethodHandle
MethodHandles. dropArgumentsToMatch(MethodHandle target, int skip, List<Class<?>> newTypes, int pos)
Adapts a target method handle to match the given parameter type list.static MethodHandle
MethodHandles. explicitCastArguments(MethodHandle target, MethodType newType)
Produces a method handle which adapts the type of the given method handle to a new type by pairwise argument and return type conversion.static MethodHandle
MethodHandles. filterArguments(MethodHandle target, int pos, MethodHandle... filters)
Adapts a target method handle by pre-processing one or more of its arguments, each with its own unary filter function, and then calling the target with each pre-processed argument replaced by the result of its corresponding filter function.static MethodHandle
MethodHandles. filterReturnValue(MethodHandle target, MethodHandle filter)
Adapts a target method handle by post-processing its return value (if any) with a filter (another method handle).static MethodHandle
MethodHandles. foldArguments(MethodHandle target, int pos, MethodHandle combiner)
Adapts a target method handle by pre-processing some of its arguments, starting at a given position, and then calling the target with the result of the pre-processing, inserted into the original sequence of arguments just before the folded arguments.static MethodHandle
MethodHandles. foldArguments(MethodHandle target, MethodHandle combiner)
Adapts a target method handle by pre-processing some of its arguments, and then calling the target with the result of the pre-processing, inserted into the original sequence of arguments.static MethodHandle
MethodHandles. guardWithTest(MethodHandle test, MethodHandle target, MethodHandle fallback)
Makes a method handle which adapts a target method handle, by guarding it with a test, a boolean-valued method handle.MethodHandle
SwitchPoint. guardWithTest(MethodHandle target, MethodHandle fallback)
Returns a method handle which always delegates either to the target or the fallback.static MethodHandle
MethodHandles. insertArguments(MethodHandle target, int pos, Object... values)
Provides a target method handle with one or more bound arguments in advance of the method handle's invocation.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 MethodHandle
MethodHandles. iteratedLoop(MethodHandle iterator, MethodHandle init, MethodHandle body)
Constructs a loop that ranges over the values produced by anIterator<T>
.static MethodHandle
MethodHandles. loop(MethodHandle[]... clauses)
Constructs a method handle representing a loop with several loop variables that are updated and checked upon each iteration.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 providedMethodHandle
, after appropriate type adaptation and partial evaluation of arguments.static MethodHandle
MethodHandles. permuteArguments(MethodHandle target, MethodType newType, int... reorder)
Produces a method handle which adapts the calling sequence of the given method handle to a new type, by reordering the arguments.static <T extends Member>
TMethodHandles. reflectAs(Class<T> expected, MethodHandle target)
Performs an unchecked "crack" of a direct method handle.MethodHandleInfo
MethodHandles.Lookup. revealDirect(MethodHandle target)
Cracks a direct method handle created by this lookup object or a similar one.abstract void
CallSite. setTarget(MethodHandle newTarget)
Updates the target method of this call site, according to the behavior defined by this call site's specific class.void
ConstantCallSite. setTarget(MethodHandle ignore)
Always throws anUnsupportedOperationException
.void
MutableCallSite. setTarget(MethodHandle newTarget)
Updates the target method of this call site, as a normal variable.void
VolatileCallSite. setTarget(MethodHandle newTarget)
Updates the target method of this call site, as a volatile variable.static MethodHandle
MethodHandles. tryFinally(MethodHandle target, MethodHandle cleanup)
Makes a method handle that adapts atarget
method handle by wrapping it in atry-finally
block.static MethodHandle
MethodHandles. whileLoop(MethodHandle init, MethodHandle pred, MethodHandle body)
Constructs awhile
loop from an initializer, a body, and a predicate.Constructors in java.lang.invoke with parameters of type MethodHandle Constructor Description ConstantCallSite(MethodHandle target)
Creates a call site with a permanent target.ConstantCallSite(MethodType targetType, MethodHandle createTargetHook)
Creates a call site with a permanent target, possibly bound to the call site itself.MutableCallSite(MethodHandle target)
Creates a call site object with an initial target method handle.VolatileCallSite(MethodHandle target)
Creates a call site with a volatile binding to its target. -
Uses of MethodHandle in java.lang.runtime
Methods in java.lang.runtime with parameters of type MethodHandle Modifier and Type Method Description static Object
ObjectMethods. bootstrap(MethodHandles.Lookup lookup, String methodName, TypeDescriptor type, Class<?> recordClass, String names, MethodHandle... getters)
Bootstrap method to generate theObject.equals(Object)
,Object.hashCode()
, andObject.toString()
methods, based on a description of the component names and accessor methods, for eitherinvokedynamic
call sites or dynamic constant pool entries.