2011-06-23 119 views
-2

嗨,我已经写了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函数;

+0

如何编译类?他们是在同一个包里吗?什么是实际的错误(堆栈跟踪总是有帮助的) –

+0

另外,你似乎在一个字符串'ruleACode'中存储一个Closure,然后试图''Eval.me'这个字符串。 'ruleACode'将具有'Script1 $ _run_closure1 @ f00e0f'(或类似的)值,所以Eval.me将失败。 –

回答

0

我假设A的定义与案例的区别在于问题中的拼写错误?

如果不是,请尝试A.testComposedRules();

+0

嗨thanx回复和抱歉它是错字错误的问题,但我的问题是,当我尝试建立我的应用程序,它给了我错误无法找到符号类测试我已经从目标测试,它不创建类文件的groovy脚本类 – jignasha

+0

我也添加了gmaven插件,但我没有得到类;我得到一个编译时错误,找不到符号 – jignasha