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، لكني لم أفهم تماماً كيف يعمل. بالإضافة إلى ذلك، أحتاج أن تكون الدالة عامة