Недавно я читал о функциях Java 7, и одним из самых ожидаемых был invokedynamic. Большинство блогов/статей предоставляют преимущества с точки зрения реализации JVM, особенно для динамически типизированных языков. Как это повлияет на меня с точки зрения разработчика приложений?
invokedynamic и его преимущества для разработчика приложений
Ответы (2)
Если вы пишете приложение на одном из этих динамических языков, ваше приложение (вероятно) будет работать быстрее. Особенно JRuby активно использует его в данный момент.
Если вы пишете на Java, это не повлияет на вас, потому что Java (в настоящее время) не использует эту инструкцию. Я думаю, что были некоторые разговоры о том, что одна из языковых функций Java 8 может использовать его, но я не могу найти ссылку на это прямо сейчас, и в любом случае до Java 8 сейчас далеко.
В Java вы можете использовать MethodHandle как более быструю альтернативу отражению. Подробнее об дескрипторах методов можно прочитать здесь а>.
Обратите внимание, что MethodHandle не использует invokedynamic, но функция MethodHandle была разработана для обеспечения поддержки invokedynamic. Для разработчика Java-приложений MethodHandle — единственное преимущество, возникающее в результате работы над invokedynamic.