Kotlin高阶函数作为参数与Java普通接口interface等效性

Kotlin高阶函数作为参数与Java普通接口interface等效性

Kotlin高阶函数与Java接口等效性对比:Kotlin高阶函数作为参数与Java普通接口的等效实现方式。通过asyncTask函数展示了两种回调处理方案:使用Lambda表达式(高阶函数)和实现ICallback接口。两种方式最终输出结果相同,表明Kotlin的高阶函数可以替代传统的接口回调模式,简化代码结构。示例包含异步任务模拟(longWork)和结果回调处理,验证了两种方式的执行流程和输出一致性。Kotlin的高阶函数fuc,相对于传统Java接口实现更为简洁、简单。

Kotlin 复制代码
fun main() {
    val req1 = "hello,world! 1"
    asyncTask(req1, { req, resp ->
        println("$req1 req = $req, resp = $resp")
    })

    val req2 = "hello,world! 2"
    asyncTask(req2, object : ICallback {
        override fun callback(req: Any?, resp: Any?) {
            println("$req2 req = $req, resp = $resp")
        }
    })
}

fun asyncTask(any: Any?, func: (req: Any?, resp: Any?) -> Unit) {
    longWork(any)
    func.invoke(any, Result.success("$any OK"))
}

fun asyncTask(any: Any?, callback: ICallback) {
    longWork(any)
    callback.callback(any, Result.success("$any OK"))
}

interface ICallback {
    fun callback(req: Any?, resp: Any?)
}

private fun longWork(any: Any?) {
    println("$any longWork start")
    Thread.sleep(1000)
    println("$any longWork end")
}

输出:

hello,world! 1 longWork start

hello,world! 1 longWork end

hello,world! 1 req = hello,world! 1, resp = Success(hello,world! 1 OK)

hello,world! 2 longWork start

hello,world! 2 longWork end

hello,world! 2 req = hello,world! 2, resp = Success(hello,world! 2 OK)

相关:

https://blog.csdn.net/zhangphil/article/details/157472980

相关推荐
2601_949818092 小时前
记录 idea 启动 tomcat 控制台输出乱码问题解决
java·tomcat·intellij-idea
爱丽_2 小时前
缓存一致性:Cache Aside、双删/延迟双删、穿透/击穿/雪崩与 CDC
java·spring·缓存
majingming1232 小时前
接口的嵌入式实现
java·后端·spring
eEKI DAND2 小时前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
-Da-2 小时前
【ai应用开发日记】通用未注入Bean AI提示词
java·数据库·人工智能·spring boot·sqlserver
黑马源码库miui520862 小时前
JAVA国际版同城上门服务上门送水桶装水配送源码同城上门配送系统源码支持Android+IOS+H5
android·java·ios
xdscode2 小时前
Spring AI 中的 Flux 与 SSE:流式输出完全解析
java·flux·sse·springai·stream流式输出
星梦清河2 小时前
Java并发编程
java·开发语言
SimonKing2 小时前
IntelliJ IDEA AI Assistant 携带OpenCode保姆级安装教程来了
java·后端·程序员