Few questions about invokeDynamic

assembling signals assembling.signals at yandex.ru
Mon Nov 8 03:25:05 PST 2010


John, Remi, thank you both for your replies!

Now, I sadly don't exactly understand what that means:
> "doing a Lookup.findVirtual on MethodHandle.invokeGeneric."
I first do something such as MethodHandles.lookup().find[Virtual|Static] and the return is a method handle,
which I am using to do (let's say) invokeVarargs (as in my "benchmark" code).

And how "MethodHandles.spreadArguments()" could be useful to me, I have to figure out first ;)

May I ask, when the next merge of fresh code of MLVM (into the JDK7 mainline) could occur?

Thank you.

>   Le 08/11/2010 07:43, John Rose a écrit :
>  > On Nov 7, 2010, at 1:17 AM, assembling signals wrote:
>  >
>  >> For the use case "calling a method whose signature is unknown prior to runtime"
>  >> (such as some lib, loaded externally) :
>  > That's what MethodHandles.genericInvoker is for.
>  >
>  > You can also do this yourself by calling Lookup.findVirtual on MethodHandle.invokeExact.  That reflective mechanism will hand you a capability to invoke any signature, even if you didn't spin bytecodes.
>  John, You mean, doing a Lookup.findVirtual on MethodHandle.invokeGeneric.
>  Ivan, you can also consider MethodHandles.spreadArguments().


More information about the mlvm-dev mailing list