Quel serait l'équivalent de ce code dans kotlin, rien ne semble fonctionner de ce que j'essaye:
public interface AnInterface {
void doSmth(MyClass inst, int num);
}
init:
AnInterface impl = (inst, num) -> {
//...
}
Si AnInterface
est Java, vous pouvez travailler avec Conversion SAM :
val impl = AnInterface { inst, num ->
//...
}
Sinon, si l'interface est Kotlin ...
interface AnInterface {
fun doSmth(inst: MyClass, num: Int)
}
... vous pouvez utiliser la syntaxe object
pour l'implémenter anonymement:
val impl = object : AnInterface {
override fun doSmth(inst:, num: Int) {
//...
}
}
Si vous réécrivez l'interface et ses implémentations dans Kotlin, vous devez simplement supprimer l'interface et utiliser un type fonctionnel:
val impl: (MyClass, Int) -> Unit = { inst, num -> ... }
Vous pouvez utiliser une expression object
Cela ressemblerait à quelque chose comme ça:
val impl = object : AnInterface {
override fun(doSmth: Any, num: Int) {
TODO()
}
}