Avatar ·

Kotlin: Interface hat keine Konstruktoren – wie erstellt man eine Instanz?

Hallo! Ich bin kürzlich von Java auf Kotlin umgestiegen und bin auf einen seltsamen Fehler gestoßen. Ich habe ein Interface `Drawable`: ```kotlin interface Drawable { fun draw() } ``` Ich möchte eine Instanz dieses Interfaces mit einer anonymen Klasse erstellen, wie ich es in Java gemacht habe: ```java // Java – funktioniert Drawable d = new Drawable() { @Override public void draw() { System.out.println("Zeichne"); } }; ``` Aber in Kotlin schreibe ich: ```kotlin val d = Drawable() // Fehler! ``` Und erhalte: "Interface Drawable does not have constructors". Ich habe verschiedene Varianten ausprobiert – `Drawable { ... }`, `Drawable() { ... }` – nichts hilft. Wie erstellt man in Kotlin korrekt eine anonyme Implementierung eines Interfaces? Oder muss man unbedingt eine separate Klasse erstellen? Ich wäre dankbar für ein Codebeispiel. <<>>

Problem: Interfaces in Kotlin können nicht wie Klassen instanziiert werden

Der Fehler tritt auf, weil Interfaces in Kotlin keine Klassen sind. In Java können Sie new Interface