GroovyGroovy 方法调用 ( Java 中函数参数是接口类型 | 函数参数是接口类型 可以 直接传递闭包 )
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GroovyGroovy 方法调用 ( Java 中函数参数是接口类型 | 函数参数是接口类型 可以 直接传递闭包 )相关的知识,希望对你有一定的参考价值。
一、Java 中函数参数是接口类型
在 android 中经常使用如下形式的接口 :
定义一个 OnClickListener 接口 ,
interface OnClickListener
void onClick()
将 OnClickListener 接口对象 作为函数参数 , 传递到函数中 ,
void setOnClickListener (OnClickListener onClickListener)
onClickListener.onClick()
然后调用上述函数 , 传递一个 OnClickListener 的匿名内部类 ,
setOnClickListener(new OnClickListener()
@Override
void onClick()
println "OnClick"
)
执行结果为 :
OnClick
二、函数参数是接口类型 可以 直接传递闭包
如果 setOnClickListener 函数参数接收的是 1 1 1 个接口 , 接口中只有 1 1 1 个方法 , 那么可以直接向 setOnClickListener 方法中传递一个闭包 , 该闭包相当于 OnClickListener 接口中的 onClick 方法 ;
interface OnClickListener
void onClick()
void setOnClickListener (OnClickListener onClickListener)
onClickListener.onClick()
setOnClickListener
println "OnClick2"
执行结果 :
OnClick2
三、完整代码示例
完整代码示例 :
interface OnClickListener
void onClick()
void setOnClickListener (OnClickListener onClickListener)
onClickListener.onClick()
// 正常参数调用
setOnClickListener(new OnClickListener()
@Override
void onClick()
println "OnClick"
)
// 传递一个闭包到 setOnClickListener 方法中
setOnClickListener
println "OnClick2"
执行结果 :
OnClick
OnClick2
以上是关于GroovyGroovy 方法调用 ( Java 中函数参数是接口类型 | 函数参数是接口类型 可以 直接传递闭包 )的主要内容,如果未能解决你的问题,请参考以下文章
GroovyGroovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )
GroovyGroovy 脚本调用 ( Linux 中调用 Groovy 脚本 | Windows 中调用 Groovy 脚本 )
GroovyGroovy 方法调用 ( 字符串切割 | 使用 Java 语法切割字符串 | 使用 Groovy 语法切割字符串直接为变量赋值 | 数组赋值给变量 变量个数小于等于数组长度 )
GroovyGroovy 方法调用 ( 使用 对象名.@成员名 访问 Groovy 对象成员 )
GroovyGroovy 动态语言特性 ( Groovy 中的变量自动类型推断以及动态调用 | Java 中必须为变量指定其类型 )
GroovyGroovy 脚本调用 ( Groovy 脚本中调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )