البرمجة

تهيئة حقل final في Kotlin

في Kotlin، لا يمكنك تهيئة حقل val (والذي يعادل final في Java) في البناء (constructor) بقيمة محسوبة في وقت التشغيل (runtime). ولكن يمكنك استخدام حقل من نوع lateinit var مع التأكد من تهيئته قبل استخدامه. إليك كيفية تحقيق ذلك:

kotlin
import kotlinx.coroutines.* class MyClass { lateinit var s: String fun initialize() { runBlocking { s = async { RemoteService.result() }.await() } } }

في هذا المثال، تم استخدام lateinit var بدلاً من val لحقل s، مما يعني أنه يجب تهيئته قبل استخدامه. تم استخدام runBlocking و async من مكتبة Kotlin Coroutines للقيام بذلك بطريقة غير تزامنية (asynchronously)، حيث يتم استدعاء RemoteService.result() بشكل غير تزامني ويتم انتظار النتيجة باستخدام await().

تأكد من استدعاء initialize() في الوقت المناسب قبل استخدام حقل s في الكود.

المزيد من المعلومات

بالطبع! في Kotlin، حقل val يجب أن يتم تهيئته بقيمة عند إعلانه أو في الكونستركتور (constructor)، ولا يمكن تعديل قيمته بعد ذلك. وهذا يعني أنه لا يمكن تهيئة حقل val بقيمة تحسب في وقت التشغيل.

وبما أن lateinit var يستخدم لتعديل الحقل بعد التهيئة الأولية، يجب التحقق من تهيئته قبل الوصول إليه لتجنب UninitializedPropertyAccessException. يمكنك استخدام مثل هذه التقنيات مع Kotlin Coroutines لتحقيق الهدف الذي تريده من تهيئة حقل val بقيمة تحسب في وقت التشغيل.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر