什么是InvokeDynamic以及我如何使用它?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

我经常听说所有添加到JVM中的新的酷特性,其中一个很酷的特性就是InvokeDynamic。我想知道它是什么,以及它如何使Java中的反射编程更容易或更好?

提问于
用户回答回答于

这是一种新的jvm指令,允许编译器生成代码,用比以前更宽松的规范调用方法--如知道是什么的话。InvokeDynamic基本上允许鸭子输入。

作为一个Java程序员,没有太多的事情可以做;但是,如果一个工具创建者,可以使用它来构建更灵活、更高效的基于JVM的语言。。

用户回答回答于

不久前,C#在C#中添加了一个很酷的特性,动态语法

Object obj = ...; // no static type available 
dynamic duck = obj;
duck.quack(); // or any method. no compiler checking.

把它看作是反射方法调用的语法糖。它可以有非常有趣的应用程序见。

负责C#动态型的NealGAfter刚刚从太阳叛逃到。因此,认为太阳内部也曾讨论过同样的事情并非不合理。

InvokeDynamic duck = obj;
duck.quack(); 

对于Java程序员来说,他们没有容易利用的方法invokedynamic在他们的节目里。

扫码关注云+社区