Kotlin: Interface não tem construtores — como criar uma instância?
Olá! Recentemente migrei de Java para Kotlin e me deparei com um erro estranho. Tenho uma interface `Drawable`:
```kotlin
interface Drawable {
fun draw()
}
```
Quero criar uma instância dessa interface usando uma classe anônima, como fazia em Java:
```java
// Java — funciona
Drawable d = new Drawable() {
@Override
public void draw() {
System.out.println("Desenhando");
}
};
```
Mas em Kotlin escrevo:
```kotlin
val d = Drawable() // Erro!
```
E recebo: "Interface Drawable does not have constructors". Tentei diferentes variações — `Drawable { ... }`, `Drawable() { ... }` — nada funciona. Como criar corretamente uma implementação anônima de interface em Kotlin? Ou é necessário criar uma classe separada? Agradeço por um exemplo de código.
<<>>
Problema: interfaces em Kotlin não podem ser instanciadas como classes
O erro ocorre porque em Kotlin interfaces não são classes. Em Java você pode escrever new Interface
No answers yet.
Faça login para deixar uma resposta