Cuál sería el equivalente de ese código en kotlin, nada parece funcionar de lo que intento:
public interface AnInterface {
void doSmth(MyClass inst, int num);
}
En eso:
AnInterface impl = (inst, num) -> {
//...
}
3 respuestas
Si AnInterface
es Java, puede trabajar con conversión SAM:
val impl = AnInterface { inst, num ->
//...
}
De lo contrario, si la interfaz es Kotlin ...
interface AnInterface {
fun doSmth(inst: MyClass, num: Int)
}
... puede usar la sintaxis object
para implementarla de forma anónima:
val impl = object : AnInterface {
override fun doSmth(inst:, num: Int) {
//...
}
}
Si está reescribiendo tanto la interfaz como sus implementaciones en Kotlin, debe eliminar la interfaz y usar un tipo funcional:
val impl: (MyClass, Int) -> Unit = { inst, num -> ... }
Puede usar una expresión de objeto
Entonces se vería algo así:
val impl = object : AnInterface {
override fun(doSmth: Any, num: Int) {
TODO()
}
}
Preguntas relacionadas
Preguntas vinculadas
Nuevas preguntas
java
Java es un lenguaje de programación de alto nivel. Utilice esta etiqueta cuando tenga problemas para usar o comprender el idioma en sí. Esta etiqueta rara vez se usa sola y se usa con mayor frecuencia junto con [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] y [maven].