Avatar ·

كيفية الحصول على فئة معامل النوع العام (Generic) في Kotlin؟ (reified, inline و TypeReference)

مرحباً بالجميع! أنا أكتب بلغة Kotlin منذ فترة قصيرة، وقد واجهت مشكلة كانت سهلة الحل في Java ولكنها تسبب لي صعوبات في Kotlin. أحتاج داخل دالة معرفة نوع المعامل الذي تم استدعاؤها به. على سبيل المثال، لدي هذا الكود:\n\n```kotlin\nfun processList(items: List) {\n // كيف أعرف هنا أن T هو String أو Int أو شيء آخر؟\n // أريد طباعة النوع في السجل\n println("Processing items of type: ${T::class}") // خطأ!\n}\n```\n\nفي Java كنت سأستخدم Class وأمرره بشكل صريح. لكن في Kotlin أريد تجنب ذلك وجعل API أنظف. جربت استخدام T::class، لكن المترجم يقول: "Cannot use 'T' as reified type parameter. Use a class instead." قرأت عن reified، لكنني لم أفهم تماماً كيف يعمل. بالإضافة إلى ذلك، أحتاج أن تكون الدالة عامة.