【Groovy】Groovy 方法调用 ( Java 中函数参数是接口类型 | 函数参数是接口类型 可以 直接传递闭包 )

简介: 【Groovy】Groovy 方法调用 ( Java 中函数参数是接口类型 | 函数参数是接口类型 可以 直接传递闭包 )

文章目录

一、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 11 个接口 , 接口中只有 1 11 个方法 , 那么可以直接向 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

image.png

目录
相关文章
|
2月前
|
Java
在Java中如何实现接口?
实现接口是 Java 编程中的一个重要环节,它有助于提高代码的规范性、可扩展性和复用性。通过正确地实现接口,可以使代码更加灵活、易于维护和扩展。
174 64
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
162 57
|
2月前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
92 38
|
17天前
|
数据采集 JSON Java
利用Java获取京东SKU接口指南
本文介绍如何使用Java通过京东API获取商品SKU信息。首先,需注册京东开放平台账号并创建应用以获取AppKey和AppSecret。接着,查阅API文档了解调用方法。明确商品ID后,构建请求参数并通过HTTP客户端发送请求。最后,解析返回的JSON数据提取SKU信息。注意遵守API调用频率限制及数据保护法规。此方法适用于电商平台及其他数据获取场景。
|
22天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
46 6
|
2月前
|
安全 Java
Java中WAIT和NOTIFY方法调用时机的深层解析
在Java多线程编程中,`wait()`和`notify()`方法的正确使用对于线程间的协调至关重要。这两个方法必须在同步块或同步方法中调用,这一规定的深层原因是什么呢?本文将深入探讨这一机制。
46 5
|
2月前
|
Java API
Java中内置的函数式接口
Java中内置的函数式接口
28 2
|
2月前
|
Java
实现java执行kettle并传参数
实现java执行kettle并传参数
31 1
|
2月前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
130 1
|
2月前
|
Java Android开发
Eclipse 创建 Java 接口
Eclipse 创建 Java 接口
36 1