On Jul 24, 2012, at 11:09 AM, Attila Szegedi wrote:
> I don't think technically there'd be a difficulty in having it
> work on primitives, it's just that it ain't the intent; you still use
> insertArguments() for uses that are not semantically "bind"s.
MethodHandle.bind is a less-general primitive. The general API is
insertArguments.
Good 292 support for primitives requires a signature-polymorphic API.
Therefore, we have been considering adding something like this, to fill
functionality not covered by bind and insertArguments:
class MethodHandle {
/** Binds the given argument(s) to the method handle, but does not invoke it.
* Arguments are not boxed, but rather passed in a signature-polymorphic
call.
* Requires an exact match to the corresponding leading parameter types.
* Returns a method handle which accepts any remaining arguments,
* and invokes the original on the combined argument lists.
* Equivalent to insertArguments(this, 0, args), but may be more efficient.
* Equivalent to this.bind(args[0]), but may be more efficient.
*/
public final native Object invokePartial(Object… args) throws Throwable;
}
If we do, we will first experiment internally with it (as a non-public API).
— John
_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev