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