জাভাতে আমরা নিম্নলিখিতগুলি করতে পারি
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কাজ না করার ত্রুটি পেয়েছি
আমি এটি অ্যারেলিস্টে ফেলে দেওয়ার চারপাশে কাজ করি, তবে জাভা কাস্টিংয়ের প্রয়োজন হয় না, তবে এটি কাস্ট করা দরকার d এবং এটি বিমূর্ত শ্রেণীর তালিকা থাকার উদ্দেশ্যকে পরাস্ত করে
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>এই মুহুর্তে আপনাকে তালিকাটি তাত্ক্ষণিকভাবে আরম্ভ করার প্রয়োজন হবে না তবে আপনি প্রথমটি তালিকাটি ব্যবহারের আগে এটি সংকলককে গ্যারান্টি দিয়েছিলেন যে আপনি প্রথমে এটি শুরু করবেন। এটি একটি মসৃণ সমাধান, তবে এটি আপনাকে বিকাশকারী হিসাবে একটি দায়বদ্ধ করে তোলে।