জেনারিক সম্পর্কে জাভা অফিসিয়াল টিউটোরিয়ালটি পড়ার সময় আমি খুঁজে পেয়েছি যে আপনি T
'এবং' অপারেটর ( &
) এর সাথে শ্রেণি এবং / বা আরও ইন্টারফেসগুলি প্রসারিত করতে টাইপ যুক্তি (এই ক্ষেত্রে হ'ল ) সীমাবদ্ধ করতে পারেন :
<T extends MyClass & Serializable>
আমি এর &
সাথে প্রতিস্থাপন করেছি ,
(ভুল করে এবং এখনও কাজ করে, একটি সামান্য সতর্কতা দিয়ে)।
আমার প্রশ্ন হ'ল এই দুটিয়ের মধ্যে কি কোনও পার্থক্য রয়েছে:
<T extends MyClass & Serializable>
<T extends MyClass , Serializable> // here is with comma
এবং উদাহরণ পদ্ধতি:
static <T extends MyClass & Serializable> ArrayList<T> fromArrayToCollection(T[] a) {
ArrayList<T> arr = new ArrayList<T>();
for (T o : a) {
arr.add(o); // Correct
}
return arr;
}
5
@ ডুরকনব আপনি ধরে নিচ্ছেন যে ওপি আপনি যে কীবোর্ড এবং একই কীবোর্ডটি ব্যবহার করছেন তা ব্যবহার করছেন।
—
এমরি
@ ইমোরি আমি মনে করি এটি এমনকি দিকটি ভুল - ত্রুটিটি তার আঙ্গুলগুলিতে নয় তার মস্তিস্কে ছিল। একইভাবে আপনি জাভা উত্স ফাইলটিতে 'ইম্পোর্ট' এর পরিবর্তে 'অন্তর্ভুক্ত' ব্যবহার করার চেষ্টা করেছেন। আপনি ভুলভাবে 'অন্তর্ভুক্ত' লিখেছেন, কারণ আপনার মস্তিষ্ক আপনাকে ভুল জিনিসটি টাইপ করতে বলেছিল, যা বিভিন্ন কারণে সম্ভব।
—
নিক পিকেরিং
@ নিকোলাস পিকারিং, ঠিক আছে! আমার কাছে, এটি কীবোর্ডের কারণে ভুল নয়, মস্তিষ্কের কারণে হয়েছিল। আপনি যখন কোন শ্রেণীর প্রয়োগগুলি ইন্টারফেসগুলি লিখেন, আপনি সেগুলি কমা দ্বারা পৃথক করে।
—
অ্যালিন সিওকান