我得到了一个很大的Java &基于Groovy的系统。当执行groovy脚本时,Java将一些有用的变量放入作用域中,以便groovy与之交互。问题是我不知道这些变量是什么,甚至不知道它们的名字。是否有一种方法,我可以通过编写Groovy来检查它自己的作用域并输出它找到的变量的名称?
一旦我有了一个变量的名字,我就可以对它使用反射来找到我需要的任何东西
看来魔法是在binding.getVariables()
我发现了一个函数,其中返回值变成了我可以看到的东西,并使用了这个:
def r = [:]
binding.getVariables().entrySet().each {
r[it.key] = it.value.getClass().getName()
}
返回我正在查找的所有变量及其类型的映射。
这个可以吗?
def env = System.getenv()
//Print all the environment variables.
env.each{
println it
}