Package | Description |
---|---|
java.lang.invoke |
The
java.lang.invoke package contains dynamic language support provided directly by
the Java core class libraries and virtual machine. |
Modifier and Type | Method and Description |
---|---|
static MethodHandle |
MethodHandles.arrayElementGetter(Class<?> arrayClass)
Produces a method handle giving read access to elements of an array.
|
static MethodHandle |
MethodHandles.arrayElementSetter(Class<?> arrayClass)
Produces a method handle giving write access to elements of an array.
|
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(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 value
x 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.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.
|
MethodHandle |
MutableCallSite.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.
|
MethodHandle |
VolatileCallSite.dynamicInvoker()
Produces a method handle equivalent to an invokedynamic instruction
which has been linked to this call site.
|
abstract MethodHandle |
CallSite.dynamicInvoker()
Produces a method handle equivalent to an invokedynamic instruction
which has been linked to this call site.
|
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 by
invokeExact . |
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,
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.
|
MethodHandle |
MutableCallSite.getTarget()
Returns the target method of the call site, which behaves
like a normal field of the
MutableCallSite . |
MethodHandle |
ConstantCallSite.getTarget()
Returns the target method of the call site, which behaves
like a
final field of the ConstantCallSite . |
MethodHandle |
VolatileCallSite.getTarget()
Returns the target method of the call site, which behaves
like a
volatile field of the VolatileCallSite . |
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 |
SwitchPoint.guardWithTest(MethodHandle target,
MethodHandle fallback)
Returns a method handle which always delegates either to the target or the fallback.
|
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.
|
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 by
invoke . |
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
given
type , with a given number of trailing arguments replaced by
a single trailing Object[] array. |
static MethodHandle |
MethodHandles.throwException(Class<?> returnType,
Class<? extends Throwable> exType)
Produces a method handle which will throw exceptions of the given
exType . |
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 |
MethodHandleProxies.wrapperInstanceTarget(Object x)
Produces or recovers a target method handle which is behaviorally
equivalent to the unique method of this wrapper instance.
|
Modifier and Type | Method and 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.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.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.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,
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.
|
MethodHandle |
SwitchPoint.guardWithTest(MethodHandle target,
MethodHandle fallback)
Returns a method handle which always delegates either to the target or the fallback.
|
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.
|
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 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 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> |
MethodHandles.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.
|
void |
MutableCallSite.setTarget(MethodHandle newTarget)
Updates the target method of this call site, as a normal variable.
|
void |
ConstantCallSite.setTarget(MethodHandle ignore)
Always throws an
UnsupportedOperationException . |
void |
VolatileCallSite.setTarget(MethodHandle newTarget)
Updates the target method of this call site, as a volatile variable.
|
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.
|
Constructor and 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.
|
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2022, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.