2014-06-11 49 views
1

我有一個groovy腳本,需要從外部groovy腳本解析一個類。我不知道如何傳遞參數。以下是工作原理:GroovyShell()。解析傳遞參數

我運行Groovy腳本是用這條線來分析從external.groovy外部類:

new GroovyShell().parse(new File('External.groovy')) 

這裏是external.groovy樣子:

class External { 
    public external() { 
     println "Hello" 
    } 
} 

它的工作原理。

我遇到的問題,我找不到一種方法來傳遞參數到外部方法。這裏是external.groovy應該是什麼樣子:

class External { 
    public external(String name) { 
     println name 
    } 
} 

如何參數添加到行書:

new GroovyShell().parse(new File('external.groovy')) //need to include the 'Name' parameter to this 
+0

有什麼用呢?不知道如何處理它,但也許它可以做一點點不同。 – Opal

+0

這裏我從另一篇文章的答案,也許有幫助http://stackoverflow.com/questions/24090660/parsing-classes-with-groovyshell/24095060#24095060 – hexin

+0

它是'外部'或'外部'? –

回答

3
  1. parse只分析你的文件並沒有執行它
  2. 您必須致電run以及
  3. 您需要實例化您的文件,並且您需要調用您的方法併爲其指定參數
  4. 你需要通過一個Binding對象

這裏是類和調用設置參數

​​

然後

def bindings = new Binding() 
bindings.setVariable("somename", "mrhaki") 
def shell = new GroovyShell(bindings) 
shell.parse(new File('external.groovy')) 
shell.run()