需要Groovy语法帮助从String生成Closure
发布时间:2020-12-14 16:34:04 所属栏目:大数据 来源:网络整理
导读:我正在尝试从字符串生成闭包.闭包内的代码引用了DSL函数build().我得到的错误暗示Groovy试图执行闭包而不是仅仅声明它.这个的正确语法是什么?以下是我已经尝试过的一些结构. sh = new GroovyShell() cl = sh.evaluate( '{ build("my job") }' } = Ambiguous
我正在尝试从字符串生成闭包.闭包内的代码引用了DSL函数build().我得到的错误暗示Groovy试图执行闭包而不是仅仅声明它.这个的正确语法是什么?以下是我已经尝试过的一些结构.
sh = new GroovyShell() cl = sh.evaluate( '{ build("my job") }' } => Ambiguous expression could be either a parameterless closure expression or an isolated open code block; sh = new GroovyShell() cl = sh.evaluate( 'L: { build("my job") }' } => No signature of method: Script1.build() is applicable ... cl = Eval.me( 'L: { build("my job") }' } => No signature of method: Script1.build() is applicable ... cl = Eval.me( 'L: { com.flow.FlowDelegate.build("my job") }' } => No such property: com for class: Script1 我想要遵循的例子来自: 解决方法
从脚本返回闭包怎么样?
Eval.me("return { build('my job') } ") 你打算用什么L:?回到地图?如果是这样,你可以使用方括号: groovy:000> a = Eval.me("[L: { build('test for') }]") ===> {L=Script1$_run_closure1@958d49} groovy:000> a.L ===> Script1$_run_closure1@958d49 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |