2010-04-25 15 views
0

Je ne suis même pas sûr de savoir comment nommer ce qn. Mais, espérons qu'il existe un moyen facile de le faire dans un langage dynamique comme groovy.fonction variable groovy

disons que j'ai un service de classe, où je délègue la logique métier. les méthodes qui s'y trouvent sont funA(), funB()... funX().

Maintenant j'ai une classe de contrôleur, où j'appelle la fermeture de service, qui peut être invoquée comme service.funA(). Maintenant, basé sur une variable (qui peut avoir des valeurs A, B ... X), je dois caler la fermeture de service correcte. Fondamentalement, pour éviter d'écrire beaucoup d'instructions conditionnelles. Quelque chose comme service."fun+var"() ferait l'affaire. Je ne suis pas sûr s'il est possible de substituer variable dans le nom de fermeture (fonction). ou tout autre moyen par fonction passage (nom) comme paramètre ... pas sûr

Je pense que PHP a une fonctionnalité similaire http://php.net/manual/en/functions.variable-functions.php

merci pour tout pointeur ..

Répondre

8

Oui, cela est possible. Cela devrait faire ce que vous voulez:

service."fun${var}"() 

Le titre correct est dynamic method invocation.

+0

Merci beaucoup .. a bien fonctionné – bsr