Avatar ·

Kotlin में lateinit वेरिएबल इनिशियलाइज़ हुआ है या नहीं, कैसे जाँचें?

सभी को नमस्ते! मैंने हाल ही में Kotlin सीखना शुरू किया है और lateinit वेरिएबल्स का उपयोग करते समय एक समस्या का सामना किया। मेरे पास एक क्लास है जिसमें मैं lateinit मॉडिफायर के साथ एक प्रॉपर्टी घोषित करता हूँ, क्योंकि मैं इसे कंस्ट्रक्टर में इनिशियलाइज़ नहीं कर सकता — मान बाहरी स्रोत से आता है (जैसे, डेटा लोड करने के बाद या DI के माध्यम से डिपेंडेंसी सेट करने पर)। यहाँ एक सरल उदाहरण है: ```kotlin class UserManager { lateinit var userName: String fun loadUser() { // डेटा लोड करने का अनुकरण userName = "Alice" } fun greetUser() { // यहाँ त्रुटि हो सकती है यदि loadUser() अभी तक कॉल नहीं किया गया println("Hello, $userName") } } ``` समस्या यह है कि यदि मैं `loadUser()` द्वारा मान असाइन करने से पहले `greetUser()` को कॉल करता हूँ, तो मुझे `UninitializedPropertyAccessException` मिलता है। मैं जाँचना चाहता हूँ कि वेरिएबल इनिशियलाइज़ हुआ है या नहीं, ताकि इस त्रुटि से बचा जा सके और संभवतः कोई डिफ़ॉल्ट कार्रवाई की जा सके। कृपया बताएँ, क्या Kotlin में इसके लिए कोई तरीका है?