首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用GroovyShell列出所有绑定变量

如何使用GroovyShell列出所有绑定变量
EN

Stack Overflow用户
提问于 2011-09-15 03:36:51
回答 1查看 13K关注 0票数 10

我是Groovy的新手。如何列出我传递给绑定构造函数的所有变量?

考虑到我有以下几点:

代码语言:javascript
复制
@Test
public void test() {

    List<String> outputNames = Arrays.asList("returnValue", "ce");

    String script = getScript();
    Script compiledScript = compileScript(script);
    CustomError ce = new CustomError("shit", Arrays.asList(new Long(1)));

    Map<String, Object> inputObjects = new HashMap<String, Object>();
    inputObjects.put("input", "Hovada");
    inputObjects.put("error", ce);

    Binding binding = new Binding(inputObjects);
    compiledScript.setBinding(binding);
    compiledScript.run();

    for (String outputName : outputNames) {
        System.out.format("outputName : %s  =  %s", outputName, binding.getVariable(outputName));
    }
}

private Script compileScript(String script) {
    GroovyShell groovyShell = new GroovyShell();
    Script compiledScript = groovyShell.parse(script);
    return compiledScript;
}

如何遍历groovy.script中的所有变量(通过hashMap)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-15 04:12:03

变量代表脚本,如果你看一下它的源代码,你会发现它有属性绑定,getter+setter和绑定有一个变量“Script compiledScript”。所以你会说:

代码语言:javascript
复制
binding.variables.each{ 
  println it.key
  println it.value 
}

对于Map<String, String> ..。

您还可以像这样设置属性:

代码语言:javascript
复制
Binding binding = new Binding(inputObjects);
compiledScript.setBinding(binding);
compiledScript.setProperty("prop", "value");
compiledScript.run();

并将其存储在绑定变量中。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7421993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档