9

是否可以获得在执行上下文Object中调用 a的引用?ClosureClosure

例如:

public class Example {

    public Example(){
        def a = {return this};
        def b = [];

        b.metaClass.a = a;

        println b.a();
    }
}

我希望此执行返回b而不是Example.

4

1 回答 1

13

调用闭包的对象可以引用为delegate. 例子:

def a = { return delegate }
def b = []

b.metaClass.a = a

assert b.a() == b
于 2012-08-28T21:26:32.997 回答