我有这样的表达:
def expr = 'anything="something"'
就我而言,上面的字符串来自网络服务,但它可能来自任何地方。我想对此进行评估,以便最终得到具有“某物”值的变量“anything”,这样:
assert anything=="something"
到目前为止我尝试过:
def anything
Eval.me(expr) // `anything` ends up null
从我读到的东西来看:
def anything
Eval.me(expr.inspect()) // same thing: `anything` ends up null
还尝试过:
def anything
expr.execute() // complains: "Executable name has embedded quote, split the arguments"
这可以做到吗?
您可以使用GroovyShell http://groovy.codehaus.org/Embedding+Groovy, 看一看:
def expr = 'anything = "something"'
def binding = new Binding()
def groovyShell = new GroovyShell(binding)
groovyShell.evaluate(expr)
assert binding.getVariable('anything') == "something"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)