الخاصية 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
}
انظر أيضًا
- الصنف KClass: يعطيك معلومات إضافية عن صنف معيّن.
مصادر
- الخاصيةjavaClass في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.