2011-06-23 162 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