Kotlin: Interface لا يحتوي على مُنشئات — كيفية إنشاء مثيل؟
مرحبًا! لقد انتقلت مؤخرًا من Java إلى Kotlin وواجهت خطأً غريبًا. لدي واجهة `Drawable`:
```kotlin
interface Drawable {
fun draw()
}
```
أريد إنشاء مثيل لهذه الواجهة باستخدام class مجهول، كما كنت أفعل في Java:
```java
// Java — يعمل
Drawable d = new Drawable() {
@Override
public void draw() {
System.out.println("رسم");
}
};
```
لكن في Kotlin أكتب:
```kotlin
val d = Drawable() // خطأ!
```
وأحصل على: "Interface Drawable does not have constructors". لقد جربت خيارات مختلفة — `Drawable { ... }`، `Drawable() { ... }` — لا شيء يساعد. كيف يمكنني إنشاء تنفيذ مجهول للواجهة بشكل صحيح في Kotlin؟ أم يجب عليّ بالضرورة إنشاء class منفصل؟ سأكون ممتنًا لمثال على الكود.
<<>>
المشكلة: لا يمكن إنشاء مثيل للواجهات في Kotlin كـ classes
يحدث الخطأ لأن الواجهات في Kotlin ليست classes. في Java يمكنك كتابة new Interface