在python中,我可以使用eval()在我的程序中执行用户输入的代码。 在Groovy中我能做些类似的事吗?我想要一个SWING UI文本框,用户输入一段我想要执行的代码?
谢谢, 哈
答案 0 :(得分:9)
运行Groovy有多种方式(来自Java和Groovy):
http://groovy-lang.org/integrating.html
然而,对于简单的脚本,最快的方法可能是使用Eval类:
http://groovy-lang.org/integrating.html#integ-eval
这会让你做类似的事情:
Eval.me( '2 + 2' )
从更多示例中查看此页面:
http://mrhaki.blogspot.com/2009/11/groovy-goodness-simple-evaluation-of.html
答案 1 :(得分:4)
是的,可以使用Eval.x,Eval.xy,Eval.xyz或Eval.me动态评估Groovy中的代码。有关这些方法的详细信息,请参阅the API doc。
例如,您可以像这样使用Eval.me:
def a = "hello"
def b = "world"
Eval.me(""" println "$a $b" """)
--> hello world
答案 2 :(得分:2)
试试这个(但与任何脚本语言中的eval一样,小心恶意代码的使用):
evaluate("print new Date()")