2010-05-20 102 views

回答

3

這是當它擊中行:

this.metaClass.mixin script 

加載的腳本可能有ar參考加載它的類(這個類),所以當你嘗試混合它時,你會得到一個無限循環。

一種解決方法是要做到:

def gse = new groovy.util.GroovyScriptEngine('/tmp') 
def script = gse.loadScriptByName('say.groovy') 
script.newInstance().with { 
    say("bye") 
} 

[編輯]

這似乎工作,如果你使用你原來的劇本,但改say.groovy

class Say { 
    def say(msg) { 
    println msg 
    } 
} 
+0

我的目標是在增加方法添加到主腳本中,而不是創建已加載腳本的實例 – IttayD 2010-05-20 17:03:04

+0

添加了不使用新實例的方法 – 2010-05-20 18:07:37