最近,我正在阅读Java 7的功能,而invokedynamic是最令人期待的功能之一。大多数博客/文章从JVM实现的角度提供了优势,特别是对于动态类型语言。从应用程序开发人员的角度来看,它对我有何影响?
答案 0 :(得分:3)
如果您使用其中一种动态语言编写应用程序,您的应用程序将(可能)运行得更快。特别是JRuby目前大量使用它。
如果您使用Java编写,它不会影响您,因为Java(当前)不使用此指令。我认为有一些人认为其中一个Java 8语言功能可能正在使用它,但我现在找不到对它的引用,而Java 8现在还有很长的路要走。
答案 1 :(得分:2)
在Java中,您可以使用MethodHandle作为反射的更快替代方案。您可以阅读有关MethodHandles here的更多信息。
请注意,MethodHandle不使用invokedynamic,但开发了MethodHandle功能以提供对invokedynamic的支持。对于Java应用程序开发人员而言,MethodHandle是对invokedynamic工作产生的唯一好处。