我有一个 groovy 脚本,运行时上下文中的变量数量未知,如何找到它们并打印每个变量的名称和值?
danb
问问题
8408 次
3 回答
22
好吧,如果您使用的是简单的脚本(不使用“def”关键字),您定义的变量将存储在绑定中,您可以像这样获取它们:
foo = "abc"
bar = "def"
if (true) {
baz = "ghi"
this.binding.variables.each {k,v -> println "$k = $v"}
}
印刷:
foo = abc
baz = ghi
args = {}
bar = def
我不知道枚举用“def”关键字定义的变量的简单方法,但我会感兴趣地关注这个问题,看看其他人是否知道如何。
于 2008-10-19T15:08:23.997 回答
4
实际上,Ted 的答案也适用于“定义”变量。
def foo = "abc" def bar = "def" 如果真实) { baz =“吉” this.binding.variables.each {k,v -> println "$k = $v"} }
产量
baz = ghi __ = [空,空,空] foo = abc _ = 空 酒吧 = 定义
我不确定 _-variables 表示什么,但我相信你可以解决它们。
于 2008-11-15T22:23:10.360 回答
0
Groovy 对象包含方法 - dump()
https://docs.groovy-lang.org/latest/html/groovy-jdk/java/lang/Object.html
String dump()
Generates a detailed dump string of an object showing its class, hashCode and fields.
例子:
class MyClass {
def foo = "abc"
def bar = "def"
}
println(new MyClass().dump())
标准输出:<MyClass@1fa268de foo=abc bar=def>
于 2020-12-29T14:21:26.110 回答