Recherche sur le blog

mercredi 18 octobre 2017

[Java] Evaluer une expression avec Groovy

Apache Groovy est à la base un langage de programmation pouvant s'intégrer à des logiciels développés pour la plateforme Java. Les librairies qu'il propose peuvent être importées dans un projet, notamment pour diverses raisons comme le besoin d'évaluer dynamiquement une expression.

En téléchargeant les binaires de la version stable 2.4.12, vous trouverez dans le sous-répertoire "lib" un JAR - groovy-2.4.12.jar - à intégrer dans votre application. La méthode qui nous intéresse se trouve dans le package "groovy.util.*". Il s'agit de Eval.me().
Integer res = (Integer) Eval.me(" 2 * 4 + 2");
Cela va tout simplement retourner 10 et le stocker dans la variable.

Il existe également trois variantes, qui permettent de passer jusqu'à 3 variables automatiquement nommées "x", "y" et "z".
Eval.x(2, " x * 4 + 2")
On donne en premier paramètre la valeur de "x" ensuite, il suffit de donner l'expression qu'on veut évaluer.
Si on creuse un peu, cette méthode réalise ceci :
Binding bind = new Binding();
bind.setVariable("x", 2);
GroovyShell sh = new GroovyShell(bind);
sh.evaluate(" x * 4 + 2");
Cela signifie qu'on peut évidemment définir plus de variables que prévu... Ouf! Et on peut même explicitement renvoyer une variable différente selon une condition remplie. Sympa non ?

Aucun commentaire: