2 ответов:
Это новая инструкция JVM, которая позволяет компилятору генерировать код, который вызывает методы с более свободной спецификацией, чем это было возможно ранее-если вы знаете, что"утиной типизацией " is, invokedynamic в основном позволяет печатать утку. Там не так много вы, как программист Java может сделать с ним; если вы создатель инструмента, хотя, вы можете использовать его для создания более гибких, более эффективных языков на основе JVM. здесь это действительно сладкий пост в блоге, который дает много деталь.
некоторое время назад, C# добавил классную функцию, Динамический синтаксис в C#
Object obj = ...; // no static type available dynamic duck = obj; duck.quack(); // or any method. no compiler checking.подумайте об этом как о синтаксическом сахаре для рефлексивных вызовов методов. Это может иметь очень интересные приложения. смотрите http://www.infoq.com/presentations/Statically-Dynamic-Typing-Neal-Gafter
Нил Гафтер, который отвечает за динамический тип C#, просто перешел от SUN к MS. поэтому неразумно думать, что те же самые вещи обсуждались внутри СОЛНЦЕ.
Я помню, вскоре после этого, какой-то Java чувак объявил что-то подобное
InvokeDynamic duck = obj; duck.quack();к сожалению, эта функция не находится в Java 7. Очень разочарован. Для Java-программистов у них нет простого способа воспользоваться
invokedynamicв своих программах.
Comments