Salut je l'ai écrit le script groovy comme:Appel de script groovy
class Test{
public Object testComposedRules() {
String ruleACode = {age, product -> def discount = 0; if(age<10 && product=="Toys") discount=10; println "hi $discount"; return discount};
Closure ruleA = (Closure) Eval.me(ruleACode);
Object object = ruleA.call(9, "Toys");
return object;
}
}
quand j'ai essayé d'accéder à cette classe d'une autre classe principale; je ne peux pas obtenir la classe de test
public static void main() {
Test a = new Test();
a.testComposedRules();
}
Si une erreur survient, elle n'existe pas; est-il un moyen d'accéder aux fonctions groovy de la classe java;
Comment compilez-vous les classes? Sont-ils dans le même paquet? Quelle est l'erreur réelle (un stacktrace aide toujours) –
Aussi, vous semblez stocker une fermeture dans une chaîne 'ruleACode', puis essayer de' Eval.me' cette chaîne. 'ruleACode' aura la valeur' Script1 $ _run_closure1 @ f00e0f' (ou similaire), donc l'Eval.me échouera. –