الفرق بين المراجعتين لصفحة: «Kotlin/javaClass»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الخاصية javaClass في لغة Kotlin}}</noinclude> تعطي الخاصية javaClass صنف الجافا الخاص بالكائن...' |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(8 مراجعات متوسطة بواسطة 4 مستخدمين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الخاصية | <noinclude>{{DISPLAYTITLE: الخاصية <code>javaClass</code> في Kotlin}}</noinclude> | ||
تعيد الخاصيّة <code>javaClass</code> صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه الخاصية في جميع الأصناف الفرعيّة (sub-classes) من الصنف <code>[[Kotlin/Any|Any]]</code>. | |||
== البنية العامة == | == البنية العامة == | ||
inline val < | <syntaxhighlight lang="kotlin"> | ||
inline val <T : Any> T.javaClass: Class<T> | |||
يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع [[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]. | </syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع [[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]. | ||
== القيم المعادة == | == القيم المعادة == | ||
صنف | صنف Java الخاصّ بالكائن الذي تُستدعى عبره أثناء التشغيل (runtime). | ||
== أمثلة == | == أمثلة == | ||
تنشِئ الشيفرة الآتية سلسلةً نصيةً باسم <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" | ||
var JClass_a = a.javaClass | var JClass_a = a.javaClass | ||
println(" $JClass_a") // class java.lang.String | println(" $JClass_a") // class java.lang.String | ||
} | } | ||
</syntaxhighlight> | |||
== ملاحظة == | == ملاحظة == | ||
هذه الخاصية | أهمل استخدام هذه الخاصية في الفترة الأخيرة، وأصبح من الأفضل -بدلًا عنها- استخدام الخاصيّة <code>java</code> للحصول على صنف <code>Java</code> الموافق لهذا الصنف في Kotlin، أو تحويل (cast) نسخة الكائن (instance) إلى الصنف <code>[[Kotlin/Any|Any]]</code> للحصول على صنف Java الخاص بتعريف استخدام (implementation) الصنف <code>[[Kotlin/KClass|KClass]]</code> أثناء التشغيل (runtime)، ويوضِّح المثال الآتي ذلك إذ يُستخدَم المعامل <code>::</code> لإنشاء مرجعيّة الصنف (class reference) في Kotlin أثناء التنفيذ (راجع [[Kotlin/reflection|مرجعيّات الأصناف]] للمزيد من التفاصيل) لتصبح الشيفرة كما يلي:<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 | ||
println(" $JClass_a") // class java.lang.String | println(" $JClass_a") // class java.lang.String | ||
} | } | ||
</syntaxhighlight> | |||
== انظر أيضًا == | == انظر أيضًا == | ||
* الصنف | * الصنف <code>[[Kotlin/Any|Any]]</code>: الجذر الرئيسيّ في الهرميّة العامّة لأيّ صنفٍ مُستخدَمٍ أثناء البرمجة في Kotlin. | ||
== مصادر == | == مصادر == | ||
* | * [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/java-class.html صفحة الخاصيّةjavaClass في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف: | [[تصنيف:Kotlin Property]] | ||
[[تصنيف:Kotlin JVM]] |
المراجعة الحالية بتاريخ 05:26، 8 سبتمبر 2018
تعيد الخاصيّة javaClass
صنف Java الخاص بالكائن (object) الذي تُستدعى عبره أثناء التشغيل (runtime)، وتُعرَّف هذه الخاصية في جميع الأصناف الفرعيّة (sub-classes) من الصنف Any
.
البنية العامة
inline val <T : Any> T.javaClass: Class<T>
يُلاحَظ وجود الكلمة المفتاحية inline
للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المعادة
صنف Java الخاصّ بالكائن الذي تُستدعى عبره أثناء التشغيل (runtime).
أمثلة
تنشِئ الشيفرة الآتية سلسلةً نصيةً باسم 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.