Avatar ·

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