小编Chr*_*xps的帖子

Kotlin 接口函数可互换参数

我目前正在开发一个接口,它有一个简单的函数,扩展该接口的所有类都应该实现该函数。但是这些类应该可以使用不同的函数参数进行调用,如下所示

interface IDoSomething<T> {

    fun execute(vararg any: Any?): T // Make function arguments interchangeable

}
Run Code Online (Sandbox Code Playgroud)
class DoSomethingA : IDoSomething<String> {

    // This is what i want
    override fun execute(int: Int, boolean: Boolean): String {
        println("Do something with parameters: $int, $boolean")
        ...  
    }

    // This is what i need to do
    override fun execute(vararg any: Any?): String {
        val int = any[0] as Int
        val boolean = any[1] as Boolean
        println("Do something with parameters: $int, $boolean")
        ...
    }
}

Run Code Online (Sandbox Code Playgroud)

实现此接口的其他类应该能够具有其他参数

class …
Run Code Online (Sandbox Code Playgroud)

generics interface kotlin

3
推荐指数
1
解决办法
1097
查看次数

标签 统计

generics ×1

interface ×1

kotlin ×1