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 | Description |
---|---|---|
static MethodHandle |
MethodHandles.arrayConstructor(Class<?> arrayClass) |
Produces a method handle constructing arrays of a desired type.
|
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.
|
static MethodHandle |
MethodHandles.arrayLength(Class<?> arrayClass) |
Produces a method handle returning the length of an array.
|
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 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.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 a
do-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.
|
MethodHandle |
MutableCallSite.dynamicInvoker() |
Produces a method handle equivalent to an invokedynamic instruction
which has been linked to this call site.
|
MethodHandle |
VolatileCallSite.dynamicInvoker() |
Produces a method handle equivalent to an invokedynamic instruction
which has been linked to this call site.
|
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 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,
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 a
final field of the ConstantCallSite . |
MethodHandle |
MutableCallSite.getTarget() |
Returns the target method of the call site, which behaves
like a normal field of the
MutableCallSite . |
MethodHandle |
VolatileCallSite.getTarget() |
Returns the target method of the call site, which behaves
like a
volatile field of the VolatileCallSite . |
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 by
invoke . |
static MethodHandle |
MethodHandles.iteratedLoop(MethodHandle iterator,
MethodHandle init,
MethodHandle body) |
Constructs a loop that ranges over the values produced by an
Iterator<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
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 |
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 a
target method handle by wrapping it in a try-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 a
while 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.
|
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 a
do-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 MethodHandle |
MethodHandles.iteratedLoop(MethodHandle iterator,
MethodHandle init,
MethodHandle body) |
Constructs a loop that ranges over the values produced by an
Iterator<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 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.
|
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 an
UnsupportedOperationException . |
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 a
target method handle by wrapping it in a try-finally block. |
static MethodHandle |
MethodHandles.whileLoop(MethodHandle init,
MethodHandle pred,
MethodHandle body) |
Constructs a
while loop from an initializer, a body, and a predicate. |
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.
|
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, 2017, Oracle and/or its affiliates. 500 Oracle Parkway
Redwood Shores, CA 94065 USA. All rights reserved.
DRAFT 9-internal+0-adhoc.mlchung.jdk9-jdeps