Что такое invokedynamic и как его использовать?



Я постоянно слышу обо всех новых интересных функциях, которые добавляются в JVM, и одна из этих интересных функций вызвана динамикой. Я хотел бы знать, что это такое и как это делает рефлексивное программирование на Java проще или лучше?

516   2  

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

    Ничего не найдено.