Avatar ·

Comment créer une instance d'interface anonyme en Kotlin ?

Bonjour à tous ! Je viens de commencer à apprendre Kotlin après Java et j'ai rencontré un problème. En Java, j'utilisais souvent des classes anonymes pour les interfaces, par exemple pour les gestionnaires de clics ou les écouteurs. Voici comment je faisais en Java :
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        System.out.println("Clicked!");
    }
});
Maintenant, j'essaie de faire la même chose en Kotlin, mais je n'y arrive pas. J'ai une interface simple :
interface ClickListener {
    fun onClick()
}
Je veux créer une instance de cette interface directement dans le code, sans créer de classe séparée. En Java, c'était simple : `new ClickListener() { ... }`. Mais en Kotlin, j'essaie différentes options, et aucune ne fonctionne :
// Option 1 - ne compile pas
val listener = ClickListener() {
    println("Clicked!")
}

// Option 2 - erreur aussi
val listener = object : ClickListener {
    println("Clicked!")
}