الخاصية javaClass‎ في لغة Kotlin

من موسوعة حسوب

تعطي الخاصية javaClass صنف الجافا الخاص بالكائن الذي استدعيت عبره في وقت التشغيل. هذه الخاصية مُعرّفة على جميع الأصناف المنحدرة من الصنف Any.

البنية العامة

inline val <T : Any> T.javaClass: Class<T>

يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).

القيم المعادة

صنف الجافا الخاص بالكائن الذي استدعيت عبره في وقت التشغيل.

أمثلة

استخدام الخاصية javaClass‎ على سلسةٍ نصية

تنشئ الشيفرة الآتية سلسلة نصية ثم تستخرج صنف الجافا الخاص بها عبر استدعاء الخاصية javaClass‎ عبر تلك السلسلة ثم تطبع النتيجة:

fun main(args: Array<String>) {
   var a: String = "hsoub"
   var JClass_a = a.javaClass
   println(" $JClass_a") // class java.lang.String
}

ملاحظة

هذه الخاصية صارت مُتجاوزة، قد يكون الأفضل استخدام الخاصية java للواجهة KClass الموافقة لهذا الصنف. يمكنك كذلك تحويل (cast) النسخة إلى Anyإن أردت الحصول على صنف الجافا الخاص بتنزيل (implementation) الواجهة KClass أثناء التشغيل.

المثال التالي يوضح هذه الطريقة:

fun main(args: Array<String>) {
   var a: String = "hsoub"
   var KClass_a = a::class  //
   var JClass_a = KClass_a.java  

   println(" $JClass_a") // class java.lang.String
}

انظر أيضًا

  • الصنف Any:الصنف الأعلى لكل أصناف Kotlin.

مصادر