授权策略Groovy

时间:2016-07-12 05:24:28

标签: groovy

我是this指南的groovy和学习闭包的新手。

  

每当在闭包中访问属性而不显式设置接收者对象时,就会涉及委派策略。

不应该返回ALLAUDIN。我在哪里做错了?

class Example {

class Person {
String name
Person(String name){
    this.name = name
}
}

class  Thing {
String name
Thing(String name){
    this.name = name
}
}


static void main(String[] args){
    Example e = new Example();

    def p = new Person(e, 'allaudin')
    def t = new Thing(e, 'laptop')

    def getUpperName = { name.toUpperCase() }
    getUpperName.delegate = p
    println getUpperName() // EXAMPLE

}

}

1 个答案:

答案 0 :(得分:3)

您需要设置delegation strategy

添加以下行:

getUpperName.resolveStrategy = Closure.DELEGATE_FIRST

您设置代理的位置