जावा में हम निम्नलिखित कर सकते हैं
public class TempClass {
List<Integer> myList = null;
void doSomething() {
myList = new ArrayList<>();
myList.add(10);
myList.remove(10);
}
}
लेकिन अगर हम इसे कोटलिन को सीधे नीचे के रूप में लिखते हैं
class TempClass {
var myList: List<Int>? = null
fun doSomething() {
myList = ArrayList<Int>()
myList!!.add(10)
myList!!.remove(10)
}
}
मुझे अपनी सूची से नहीं मिल पाने addऔर removeकार्य करने की त्रुटि मिली
मैं इसे ArrayList को कास्टिंग करने के लिए काम करता हूं, लेकिन इसे कास्टिंग करने के लिए अजीब आवश्यकता है, जबकि जावा में कास्टिंग की आवश्यकता नहीं है। और वह अमूर्त वर्ग सूची होने के उद्देश्य को पराजित करता है
class TempClass {
var myList: List<Int>? = null
fun doSomething() {
myList = ArrayList<Int>()
(myList!! as ArrayList).add(10)
(myList!! as ArrayList).remove(10)
}
}
क्या मेरे लिए सूची का उपयोग करने का एक तरीका है, लेकिन इसे डालने की आवश्यकता नहीं है, जैसे कि जावा में क्या किया जा सकता है?
myList = nullऔर फिर बाद में कॉल ऐड के बिना!!। आपlateinitअपनी संपत्ति के सामने कीवर्ड का उपयोग करके इसे इस तरह से दूर कर सकते हैं:lateinit var myList: List<Int>इस तरह आपको सूची को तुरंत आरंभीकृत करने की आवश्यकता नहीं होगी, लेकिन आप संकलक को गारंटी देते हैं कि आप पहली बार सूची का उपयोग करने से पहले इसे शुरू कर देंगे। यह एक अच्छा समाधान है, लेकिन यह एक डेवलपर के रूप में आप पर जिम्मेदारी डालता है।