web-dev-qa-db-ja.com

Kotlinのパラメーターとしてインターフェイスを渡す

次のように、インターフェイスをパラメータとして渡します。

_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ではできません。誰でもこれを行う方法を知っていますか?

24
maphongba008

Kotlinでは次のことができます。

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

    }
})

または、同じ方法でプロパティを作成します。

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

    }
}

そして、コードのどこかに:test(handler)

65
Tomasz Czura

Javaで

MyInterface testJava = context.getBean("myBean", MyInterface.class);

コトリンで

val test: MyInterface = context.getBean("myBean") as MyInterface

GL

0
CORONEL Braian