问题
给定一个简单的groovy脚本(不是类!),如何设置方法外的属性/字段的值?
示例
以下代码无法按预期工作:
def hi;
def setMyVariable() {
hi = "hello world!"
}
setMyVariable()
assert hi == "hello world!" //fails
println hi //prints null
尝试失败
我尝试过很多东西,包括以下内容,都失败了
...
def setMyVariable() {
this.hi = "hello world!"
}
...
public void setMyVariable() {
hi = "hello world!"
}
...
public String hi;
public void setMyVariable() {
this.hi = "hello world!";
}
摘要
设置方法声明外部变量的最简单方法是什么?我唯一可以上班的是以下内容 . 必须有一个更简单的方法!
def hi;
def setMyVariable() {
this.binding.setVariable("hi", "hello world!")
}
setMyVariable()
println this.binding.getVariable("hi")
assert this.binding.getVariable("hi") == "hello world!" //passes
assert hi == "hello world!" //fails
3 回答
在Groovy 1.8.x中,您可以这样做:
看一下Groovy doc的page:
在这种情况下,你必须使
hi
绑定的一部分(更简单的方法是不使用def
实际上,所以它将自动成为绑定的一部分) .您可以为变量分配匿名函数,而不是定义方法: