Groovy中closure的delegate
发布时间:2020-12-14 16:48:51 所属栏目:大数据 来源:网络整理
导读:hello.groovy import groovy.lang.ClosureClosure clos = { println "Hello closure"}println "delegate:" + clos.delegate.class.name;println "owner: " + clos.owner.class.name;clos.call();println "==============================="class C {Closure
hello.groovy import groovy.lang.Closure Closure clos = { println "Hello closure"} println "delegate:" + clos.delegate.class.name; println "owner: " + clos.owner.class.name; clos.call(); println "===============================" class C { Closure clos = { println this.class.name println "delegate:" + delegate.class.name; println "owner: " + owner.class.name; def nestClos = { println "in nest delegate:" + delegate.class.name println "in nest owner:" + owner.class.name; } nestClos() } } def cls = new C().clos; cls(); println "====== afer reset delegate for outer clos =====" cls.delegate = this cls(); output: delegate:hello owner: hello Hello closure =============================== C delegate:C owner: C in nest delegate:C$_closure1 in nest owner:C$_closure1 ====== afer reset delegate for outer clos ===== C delegate:hello owner: C in nest delegate:C$_closure1 in nest owner:C$_closure1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |