使用闭包创建量化接口,接口对象(量化接口,接口中有一个函数)
在Groovy中,声明一个量化接口,接口,量化接口,接口中定义了111个抽象函数,
传统创建量化接口,接口的方法如下,创建一个匿名内部类;
使用闭包,也可以创建上述量化接口,接口对象,闭包中的内容就是唯一的抽象函数内容;
// 使用闭包创建量化接口,接口对象
OnClickListener listener = {
println 'OnClickListener'
}
调用
执行量化接口,接口函数,执行结果如下:
代码示例:
// I. 使用闭包创建量化接口,接口, 量化接口,接口中有 1 个函数
interface OnClickListener {
void onClick()
}
void setOnClickListener (OnClickListener onClickListener) {
onClickListener.onClick()
}
// 使用闭包创建量化接口,接口对象
OnClickListener listener = {
println 'OnClickListener'
}
listener.onClick()
setOnClickListener(listener)
执行结果:
使用闭包创建量化接口,接口对象(量化接口,接口中有多个函数)
如果量化接口,接口中定义了多个函数,
则在创建闭包时,在闭包后面添加
as 量化接口,接口名
代码,如下:
// 使用闭包创建量化接口,接口对象
OnClickListener2 listener2 = {
println 'OnClickListener2'
} as OnClickListener2
上述方法会默认将量化接口,接口的多个方法都设置为上述闭包方法;
执行量化接口,接口对象的onClick和onLongClick方法,执行的都是相同的闭包方法;
上述222行代码执行结果都打印
代码示例:
interface OnClickListener2 {
void onClick()
void onLongClick()
}
void setOnClickListener2 (OnClickListener2 onClickListener) {
onClickListener.onClick()
}
// 使用闭包创建量化接口,接口对象
OnClickListener2 listener2 = {
println 'OnClickListener2'
} as OnClickListener2
listener2.onClick()
listener2.onLongClick()
setOnClickListener2(listener2)
执行结果:
完整代码示例
完整代码示例:
// I. 使用闭包创建量化接口,接口, 量化接口,接口中有 1 个函数
interface OnClickListener {
void onClick()
}
void setOnClickListener (OnClickListener onClickListener) {
onClickListener.onClick()
}
// 使用闭包创建量化接口,接口对象
OnClickListener listener = {
println 'OnClickListener'
}
listener.onClick()
setOnClickListener(listener)
// II. 使用闭包创建量化接口,接口, 量化接口,接口中有多个函数
interface OnClickListener2 {
void onClick()
void onLongClick()
}
void setOnClickListener2 (OnClickListener2 onClickListener) {
onClickListener.onClick()
}
// 使用闭包创建量化接口,接口对象
OnClickListener2 listener2 = {
println 'OnClickListener2'
} as OnClickListener2
listener2.onClick()
listener2.onLongClick()
setOnClickListener2(listener2)
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点