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