嗨,我已经写了Groovy脚本,如:呼叫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;
}
}
当我试图从另一个主类访问该类;我不能得到测试类
public static void main() {
Test a = new Test();
a.testComposedRules();
}
我收到错误它不存在;有什么办法从java类访问groovy函数;
如何编译类?他们是在同一个包里吗?什么是实际的错误(堆栈跟踪总是有帮助的) –
另外,你似乎在一个字符串'ruleACode'中存储一个Closure,然后试图''Eval.me'这个字符串。 'ruleACode'将具有'Script1 $ _run_closure1 @ f00e0f'(或类似的)值,所以Eval.me将失败。 –