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

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

(编辑:李大同)

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

    推荐文章
      热点阅读