এটা সত্যিই সহজ। এটি J2SE 5 এ একটি নতুন বৈশিষ্ট্য চালু করেছে । শ্রেণীর নামের পরে কৌণিক বন্ধনী উল্লেখ করার অর্থ আপনি একটি অস্থায়ী ডেটা টাইপ তৈরি করছেন যা কোনও ধরণের ডেটা ধরে রাখতে পারে।
উদাহরণ:
class A<T>{
T obj;
void add(T obj){
this.obj=obj;
}
T get(){
return obj;
}
}
public class generics {
static<E> void print(E[] elements){
for(E element:elements){
System.out.println(element);
}
}
public static void main(String[] args) {
A<String> obj=new A<String>();
A<Integer> obj1=new A<Integer>();
obj.add("hello");
obj1.add(6);
System.out.println(obj.get());
System.out.println(obj1.get());
Integer[] arr={1,3,5,7};
print(arr);
}
}
পরিবর্তে <T>, আপনি আসলে কিছু লিখতে পারেন এবং এটি একইভাবে কাজ করবে। <ABC>জায়গায় লিখতে চেষ্টা করুন <T>।
এটি কেবল সুবিধার জন্য:
<T> যে কোনও ধরণের হিসাবে উল্লেখ করা হয়
<E> উপাদান টাইপ হিসাবে
<N> সংখ্যা টাইপ হিসাবে
<V> মান হিসাবে
<K> চাবি হিসাবে
তবে আপনি এটির যে কোনও নাম রাখতে পারেন, এটি আসলে কিছু যায় আসে না।
অধিকন্তু, Integer, String, Booleanইত্যাদি জাভা যা সংকলন করার সময় ধরনের পরীক্ষণের হেল্প এবং রাপার শ্রেনীর হয়। উদাহরণস্বরূপ, উপরের objকোডটিতে String, টাইপযুক্ত , তাই আপনি এটিতে অন্য কোনও প্রকার যুক্ত করতে পারবেন না (চেষ্টা করুন obj.add(1), এটি একটি ত্রুটি castালবে)। একইভাবে, obj1হয় Integerটাইপ, আপনি এটি (চেষ্টা অন্য কোন প্রকার যোগ করতে পারবেন না obj1.add("hello"), ত্রুটি থাকবে)।
T createObjectপুল বা PoolFactory ভিতরে হতে অনুমিত? কোথায় থাকারthis.freeObjects = ...কথা? এটা কি আলাদা উদাহরণ? এটি সেখানে থাকা অবৈধ; এটি একটি পদ্ধতির ভিতরে থাকতে হবে।