Vivasoft-logo

১০.৬ জেনেরিকের অ্যাডভান্সড (Advanced) ব্যবহার:

১০.৬.১ জেনেরিক প্রকারে সীমা প্রয়োগ করা

এই ক্লাস বিবেচনা করুন:

class NumSum {
    final List numbers;
    
    NumSum(this.numbers);
    
    num getSum() {
        num sum = 0.0;
        for (int i = 0; i < numbers.length; ++i) {
            sum += numbers[i];
        }
        return sum;
    }
}
 

আমরা একটি নতুন জিনিস দেখতে পাচ্ছি, T extends num. এখানে আমরা T টাইপের সীমানা প্রয়োগ করছি। আমরা এটিকে বলছি - "আপনি শুধুমাত্র সংখ্যা (num type) এবং এর উপশ্রেণীগুলি গ্রহণ করতে পারেন"। এইভাবে, আমরা এটিকে শুধুমাত্র সংখ্যা গ্রহণ করতে সক্ষম হতে বাধ্য করছি (টাইপ সংখ্যা এবং এর সাবক্লাস)।

এটি বোধগম্যএটি করার কারণ হলো, কিছু স্ট্রিং, বা একটি স্ট্রিং এবং একটি সংখ্যা থেকে একটি সংখ্যাসূচক যোগফল পাওয়া - এটি কোন অর্থ রাখে না।

এইভাবে আমরা আমাদের জেনেরিক ক্লাস/ফাংশনগুলিতে শুধুমাত্র আমরা যে ধরনের টাইপ চাই তা গ্রহণ করতে পারি।