Avatar ·

Kotlin : Interface n'a pas de constructeurs — comment créer une instance ?

Bonjour ! Je suis récemment passé de Java à Kotlin et j'ai rencontré une erreur étrange. J'ai une interface `Drawable` : ```kotlin interface Drawable { fun draw() } ``` Je veux créer une instance de cette interface avec une classe anonyme, comme je le faisais en Java : ```java // Java — fonctionne Drawable d = new Drawable() { @Override public void draw() { System.out.println("Je dessine"); } }; ``` Mais en Kotlin, j'écris : ```kotlin val d = Drawable() // Erreur ! ``` Et j'obtiens : "Interface Drawable does not have constructors". J'ai essayé différentes variantes — `Drawable { ... }`, `Drawable() { ... }` — rien ne fonctionne. Comment créer correctement une implémentation anonyme d'une interface en Kotlin ? Ou dois-je obligatoirement créer une classe séparée ? Je serais reconnaissant pour un exemple de code. <<>>

Problème : les interfaces en Kotlin ne peuvent pas être instanciées comme des classes

L'erreur se produit car en Kotlin, les interfaces ne sont pas des classes. En Java, vous pouvez écrire new Interface