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 脚本 | 参数传递 )