cute demo uses import-static
John Rose
John.Rose at Sun.COM
Tue May 5 00:56:29 PDT 2009
I have been updating the InvokeDynamicDemo toy project from my blog
(and the meth/indy software in general).
Here's the driver routine for that demo:
import java.dyn.*;
import static java.dyn.MethodHandles.*;
import static java.dyn.MethodType.*;
public class Main {
static final Class[] CLASSES = { Hello.class, GetNameDemo.class,
FidgetDemo.class };
public static void main(String[] args) {
for (Class c : CLASSES) {
MethodHandle main = lookup().findStatic(c, "main",
make(void.class, String[].class));
System.out.println("******** "+c.getName()+"."+main);
main.<void>invoke(args);
}
}
}
The import-statics reduce the verbosity, but (to me at least) it's
still readable. I'm thinking maybe we should rename "make" to "type",
as in MethodType.type(...) or for short just type(...).
I will be pushing the code that actually runs this stuff in a day or
two. (I know folks have been waiting for it.)
Here's a bit of good news: I just pushed the experimental javac
changes into the TL/langtools integration area, so that we can
actually write the code above.
(N.B. The javac support is subject to change, if we decide there's a
better design for the language support. Anybody who followed Neal's
closures design, or the earlier debates about internal vs. external
iterator APIs, knows that delicate problems arise when checked
exceptions mix with function pointers.)
Best wishes,
-- John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20090505/ba61229a/attachment.html
More information about the mlvm-dev
mailing list