首页 文章

在Kotlin中将接口作为参数传递

提问于
浏览
18

我想传递一个接口作为参数,如下所示:

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中这样做 . 有人知道怎么做吗?

1 回答

  • 43

    在Kotlin你可以做到:

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

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

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

    而且,代码中的某个地方:test(handler)

相关问题