我得到了一个大型的Java&基于Groovy的系统。当执行groovy脚本时,Java会在Groovy进行交互的范围内放置一些有用的变量。麻烦的是我不知道这些变量是什么,甚至不知道它们的名字。有没有办法可以通过编写Groovy来检查它自己的范围并输出它找到的变量名称?
一旦我有一个名字变量,我就可以使用反射来找出我需要的任何东西。
答案 0 :(得分:2)
所以看来神奇的是binding.getVariables()
我找到了一个函数,其中返回值变成我能看到并使用它的东西:
def r = [:]
binding.getVariables().entrySet().each {
r[it.key] = it.value.getClass().getName()
}
返回我正在寻找的所有变量及其类型的地图。
答案 1 :(得分:0)
这对你有用吗?
def env = System.getenv()
//Print all the environment variables.
env.each{
println it
}