174 votes

Ce qui est invokedynamic et comment puis-je l'utiliser?

J'entends toujours parler de toutes les nouvelles fonctionnalités qui sont ajoutées à la JVM et l'une de ces fonctionnalités est invokedynamic. Je voudrais savoir ce que c'est et comment est-il réfléchissant de la programmation Java, la plus facile ou mieux?

171voto

Ernest Friedman-Hill Points 56605

C'est une nouvelle JVM de l'instruction qui permet au compilateur de générer du code qui appelle des méthodes avec un looser spécification de ce qui était auparavant possible-si vous savez ce que "duck typing" est, invokedynamic permet essentiellement de duck-typing. Il n'y a pas trop de vous en tant que programmeur Java peut faire avec elle; si vous êtes créateur, bien que, vous pouvez l'utiliser pour construire plus souple, plus efficace JVM à base de langues. Ici est vraiment un doux billet de blog qui donne beaucoup de détails.

7voto

irreputable Points 25577

Il y a quelques temps, C# ajout d'une fonctionnalité sympathique, dynamique de la syntaxe de C#

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

Il pense que la syntaxe de sucre pour les appels de méthode. Il peut y avoir des applications intéressantes. voir http://www.infoq.com/presentations/Statically-Dynamic-Typing-Neal-Gafter

Neal Gafter, qui est responsable de C#de type dynamique, seulement défection de SOLEIL à MME de Sorte qu'il n'est pas déraisonnable de penser que la même chose avait été discuté à l'intérieur du SOLEIL.

Je me souviens peu de temps après, certaines Java mec a annoncé quelque chose de similaire

InvokeDynamic duck = obj;
duck.quack(); 

Malheureusement, la fonctionnalité n'est pas le cas à être trouvés dans Java 7. Très déçu. Pour les programmeurs Java, ils n'ont pas de moyen facile de profiter de l' invokedynamic dans leurs programmes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X