kotlin 中接口的 Lambda 实现
相当于kotlin中的代码,似乎没有什么比我尝试的更有效:
public interface AnInterface {
void doSmth(MyClass inst, int num);
}
初始化:
AnInterface impl = (inst, num) -> {
//...
}
相当于kotlin中的代码,似乎没有什么比我尝试的更有效:
public interface AnInterface {
void doSmth(MyClass inst, int num);
}
初始化:
AnInterface impl = (inst, num) -> {
//...
}
如果 是 Java,则可以使用 SAM 转换:AnInterface
val impl = AnInterface { inst, num ->
//...
}
否则,如果接口是 Kotlin...
interface AnInterface {
fun doSmth(inst: MyClass, num: Int)
}
...您可以使用以下语法匿名实现它:object
val impl = object : AnInterface {
override fun doSmth(inst:, num: Int) {
//...
}
}
如果您要将接口及其实现都重写为 Kotlin,那么您应该删除该接口并使用函数类型:
val impl: (MyClass, Int) -> Unit = { inst, num -> ... }