Cómo crear una instancia de una interfaz anónima en Kotlin?
¡Hola a todos! Acabo de empezar a aprender Kotlin después de Java y me encontré con un problema. En Java solía usar clases anónimas para interfaces, por ejemplo, para manejadores de clics o listeners. Así es como lo hacía en Java:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("Clicked!");
}
});
Ahora intento hacer lo mismo en Kotlin, pero no lo logro. Tengo una interfaz simple:
interface ClickListener {
fun onClick()
}
Quiero crear una instancia de esta interfaz directamente en el código, sin crear una clase separada. En Java era simple: `new ClickListener() { ... }`. Pero en Kotlin pruebo diferentes opciones y ninguna funciona:
// Opción 1 - no compila
val listener = ClickListener() {
println("Clicked!")
}
// Opción 2 - también error
val listener = object : ClickListener {
println("Clicked!")
}