الفرق بين المراجعتين ل"Kotlin/javaClass"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (نقل عبد اللطيف ايمش صفحة Kotlin/jvm/javaClass إلى Kotlin/javaClass)
(مراجعة أولى)
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الخاصية javaClass‎ في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الخاصية javaClass‎ في لغة Kotlin}}</noinclude>
تعطي الخاصية <code>javaClass</code> صنف الجافا الخاص بالكائن الذي استدعيت عبره في وقت التشغيل. هذه الخاصية مُعرّفة على جميع الأصناف المنحدرة من الصنف <code>[[Kotlin/Any|Any]]</code>.
+
تعيد الخاصيّة <code>javaClass</code> صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه الخاصية في جميع الأصناف الفرعيّة (sub-classes) من الصنف <code>[[Kotlin/Any|Any]]</code>.
  
 
== البنية العامة ==
 
== البنية العامة ==
سطر 8: سطر 8:
  
 
== القيم المعادة ==
 
== القيم المعادة ==
صنف الجافا الخاص بالكائن الذي استدعيت عبره في وقت التشغيل.
+
صنف Java الخاصّ بالكائن الذي تُستدعى عبره أثناء التشغيل (runtime).
  
 
== أمثلة ==
 
== أمثلة ==
  
=== استخدام الخاصية <code>javaClass‎</code> على سلسةٍ نصية ===
+
=== استخدام الخاصية <code>javaClass‎</code> في السلاسل النصية (strings) ===
تنشئ الشيفرة الآتية سلسلة نصية ثم تستخرج صنف الجافا الخاص بها عبر استدعاء الخاصية <code>javaClass‎</code> عبر تلك السلسلة ثم تطبع النتيجة:<syntaxhighlight lang="kotlin">
+
تنشِئ الشيفرة الآتية سلسلةً نصيةً باسم <code>a</code>، وتحصل على صنف Java الخاص بها عبر استدعاء الخاصية <code>javaClass‎</code> لتلك السلسلة وتطبع النتيجة:<syntaxhighlight lang="kotlin">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
   var a: String = "hsoub"
 
   var a: String = "hsoub"
سطر 22: سطر 22:
  
 
== ملاحظة ==
 
== ملاحظة ==
هذه الخاصية صارت مُتجاوزة، قد يكون الأفضل استخدام الخاصية java للواجهة <code>KClass</code> الموافقة لهذا الصنف. يمكنك كذلك تحويل (cast) النسخة إلى <code>[[Kotlin/Any|Any]]</code>إن أردت الحصول على صنف الجافا الخاص بتنزيل (implementation) الواجهة <code>KClass</code> أثناء التشغيل.
+
استُبعِد استخدام هذه الخاصية مؤخرًا، وأصبح من الأفضل -بدلًا عنها- استخدام الخاصيّة <code>java</code> للحصول على صنف Java الموافق لهذا الصنف في Kotlin، أو تحويل (cast) نسخة الكائن (instance) إلى [[Kotlin/Any|الصنف <code>Any</code>]] للحصول على صنف Java الخاص بتعريف استخدام (implementation) [[Kotlin/KClass|الصنف <code>KClass</code>]] أثناء التشغيل (runtime)، ويوضِّح المثال الآتي ذلك إذ يُستخدَم المعامل <code>::</code> لإنشاء مرجعيّة الصنف (class reference) في Kotlin أثناء التنفيذ (راجع [[Kotlin/reflection|مرجعيّات الأصناف]] للمزيد من التفاصيل) لتصبح الشيفرة كما يلي:<syntaxhighlight lang="kotlin">
 
 
المثال التالي يوضح هذه الطريقة:<syntaxhighlight lang="kotlin">
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
 
   var a: String = "hsoub"
 
   var a: String = "hsoub"
   var KClass_a = a::class  //
+
   var KClass_a = a::class
 
   var JClass_a = KClass_a.java  
 
   var JClass_a = KClass_a.java  
  
سطر 35: سطر 33:
  
 
== انظر أيضًا ==
 
== انظر أيضًا ==
* الصنف <code>[[Kotlin/Any|Any]]:</code>الصنف الأعلى لكل أصناف Kotlin.
+
* [[Kotlin/Any|الصنف <code>Any</code>:]] الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin.
  
 
== مصادر ==
 
== مصادر ==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/java-class.html الخاصيةjavaClass ‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/java-class.html الخاصيّةjavaClass ‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:kotlin properties]]
 
[[تصنيف:kotlin properties]]

مراجعة 02:40، 21 مايو 2018

تعيد الخاصيّة javaClass صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه الخاصية في جميع الأصناف الفرعيّة (sub-classes) من الصنف Any.

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

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

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

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

صنف Java الخاصّ بالكائن الذي تُستدعى عبره أثناء التشغيل (runtime).

أمثلة

استخدام الخاصية javaClass‎ في السلاسل النصية (strings)

تنشِئ الشيفرة الآتية سلسلةً نصيةً باسم a، وتحصل على صنف Java الخاص بها عبر استدعاء الخاصية javaClass‎ لتلك السلسلة وتطبع النتيجة:

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

ملاحظة

استُبعِد استخدام هذه الخاصية مؤخرًا، وأصبح من الأفضل -بدلًا عنها- استخدام الخاصيّة java للحصول على صنف Java الموافق لهذا الصنف في Kotlin، أو تحويل (cast) نسخة الكائن (instance) إلى الصنف Any للحصول على صنف Java الخاص بتعريف استخدام (implementation) الصنف KClass أثناء التشغيل (runtime)، ويوضِّح المثال الآتي ذلك إذ يُستخدَم المعامل :: لإنشاء مرجعيّة الصنف (class reference) في Kotlin أثناء التنفيذ (راجع مرجعيّات الأصناف للمزيد من التفاصيل) لتصبح الشيفرة كما يلي:

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.

مصادر