加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

是否有可能在groovy中获取闭包的调用者对象?

发布时间:2020-12-14 16:33:28 所属栏目:大数据 来源:网络整理
导读:是否有可能在Closure的执行上下文中获取调用Closure的Object的引用? 例如: public class Example { public Example(){ def a = {return this}; def b = []; b.metaClass.a = a; println b.a(); }} 我希望此执行返回b而不是Example的实例. 解决方法 调用闭
是否有可能在Closure的执行上下文中获取调用Closure的Object的引用?

例如:

public class Example {

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

        b.metaClass.a = a;

        println b.a();
    }
}

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

解决方法

调用闭包的对象可以作为委托引用.例:

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

b.metaClass.a = a

assert b.a() == b

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读