android - 在 Kotlin 中将接口(interface)作为参数传递

我想像这样传递一个接口(interface)作为参数:

class Test {
    fun main() {
        test({})
        // how can I pass here?
    }

    fun test(handler: Handler) {
        // do something
    }

    interface Handler {
        fun onCompleted()
    }
}

在 Java 中,我可以使用像 test(new Handler() { .......... }) 这样的匿名函数,但在 Kotlin 中我不能这样做。有人知道怎么做吗?

最佳答案

在 Kotlin 你可以这样做:

test(object: Handler {
    override fun onComplete() {

    }
})

或者以同样的方式创建一个属性:

val handler = object: Handler {
    override fun onComplete() {

    }
}

而且,在代码中的某处: 测试(处理程序)

https://stackoverflow.com/questions/41649535/

相关文章:

android - 使用 Kotlin for Android 进行数据绑定(bind)的问题

intellij-idea - Kotlin - IntelliJ 项目设置

java - 在 Kotlin 中,如何转换 Int?到一个 Int

android - 如何在 androidTest 范围内使用 kapt

android - 缺少主调度程序的模块

types - Kotlin:从列表(或其他功能转换)中消除空值

lambda - 在 lambda 中使用 return?

kotlin - 如何从包类名称字符串中获取 Kotlin KClass?

android - 在 Android Studio 中创建 Kotlin 库

android - 在 Kotlin 中使用 Gson 解析 JSON 数组