InvokeDynamic from source code in JDK7
Prerelease versions of JDK 7 contained a class java.dyn开发者_运维问答.InvokeDynamic that allowed creating invokedynamic instructions from source code.
See here: http://fwierzbicki.blogspot.com/2009/08/invokedynamic-and-jython-part-i.html
In the official JDK 7 release this class seems to have disappeared. Does anyone know if this source-code option is still supported?
java.dyn package has been renamed to java.lang.invoke.
Though I don't think you can create the 'invokedynamic' instruction from Java, the instruction is there for other dynamic languages.
In Java you can use 'java.lang.invoke.MethodHandle' as a faster alternative to reflection, examples are available in the javadoc of the MethodHandle class. Note that invokedynamic instruction itself relies on MethodHandle for dynamic linking of methods. (For more details you can read Oracle's article New JDK 7 Feature: Support for Dynamically Typed Languages in the Java Virtual Machine)
精彩评论