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
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Refactoring von Legacy-Code in Rust: Vollständiger Leitfaden für Anfänger
Rust im Jahr 2025: Vollständiger Leitfaden für Anfänger von Null an