JDK 7 的预发布版本包含一个类 java.dyn.InvokeDynamic,它允许从源代码创建调用动态指令。
见这里: http: //fwierzbicki.blogspot.com/2009/08/invokedynamic-and-jython-part-i.html
在正式的 JDK 7 版本中,这个类似乎已经消失了。有谁知道这个源代码选项是否仍然受支持?
JDK 7 的预发布版本包含一个类 java.dyn.InvokeDynamic,它允许从源代码创建调用动态指令。
见这里: http: //fwierzbicki.blogspot.com/2009/08/invokedynamic-and-jython-part-i.html
在正式的 JDK 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)