JDK 7的预发布版本包含一个java.dyn.InvokeDynamic类,允许从源代码创建invokedynamic指令。
见这里: http://fwierzbicki.blogspot.com/2009/08/invokedynamic-and-jython-part-i.html
在官方的JDK 7版本中,这个类似乎已经消失了。有谁知道这个源代码选项是否仍然受支持?
答案 0 :(得分:7)
java.dyn包已重命名为java.lang.invoke。
虽然我认为你不能从Java创建'invokedynamic'指令,但是该指令适用于其他动态语言。
在Java中,您可以使用'java.lang.invoke.MethodHandle'作为反射的更快替代方法,MethodHandle类的javadoc中提供了示例。请注意,invokedynamic指令本身依赖于MethodHandle来动态链接方法。 (有关更多详细信息,请阅读Oracle的文章New JDK 7 Feature: Support for Dynamically Typed Languages in the Java Virtual Machine)