Avatar ·

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!")
}