Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
219 views
in Technique[技术] by (71.8m points)

android - Pass interface as parameter in Kotlin

I want to pass an interface as parameter like this:

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

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

    interface Handler {
        fun onCompleted()
    }
}

In Java, I can use anonymous function like test(new Handler() { .......... }), but I can't do this in Kotlin. Anyone know how to do this?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

In Kotlin you can do :

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

    }
})

Or make a property the same way:

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

    }
}

And, somewhere in code: test(handler)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...