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
No answers yet.
Connectez-vous pour laisser une réponse