2

ユーザーが実行時に(DSLで)入力するGroovyの一部をコンパイルして実行したいと思います。これはGroovyで可能ですか?もしそうなら、それを行うための最良の方法は何ですか?

4

2 に答える 2

4

GroovyClassLoader を使用できます。

def userScript = '''
  (1..5).each {
    println 'X' * it
  }
'''

Class c = new GroovyClassLoader().parseClass( userScript )
c.newInstance().run()

または、 Groovy を統合するためのドキュメントにあるその他の方法を使用することもできます。

于 2012-05-17T08:01:07.533 に答える
0

groovy でバインドの概念を使用すると、外部から変数を挿入して処理するのに役立ちます。

http://mrhaki.blogspot.in/2010/08/groovy-goodness-store-closures-in.html

于 2012-05-17T09:43:26.283 に答える