"एक और अच्छा विषय।"

"आश्चर्य बस आते रहते हैं! क्या यह मेरा जन्मदिन है?"

"आज, मैं आपको जेनरिक के बारे में बताऊंगा। जेनरिक वे प्रकार होते हैं जिनका एक पैरामीटर होता है। जावा में, कंटेनर क्लास आपको उनके आंतरिक ऑब्जेक्ट के प्रकार का संकेत देते हैं।"

"जब हम एक सामान्य चर घोषित करते हैं, तो हम एक के बजाय दो प्रकार इंगित करते हैं: चर प्रकार और डेटा का प्रकार जो इसे संग्रहीत करता है।"

"ArrayList एक अच्छा उदाहरण है। जब हम एक नया ArrayList ऑब्जेक्ट बनाते हैं, तो इस सूची के अंदर संग्रहीत किए जाने वाले मानों के प्रकार को इंगित करना सुविधाजनक होता है।"

कोड व्याख्या
ArrayList<String> list = new ArrayList<String>();
नामक एक ArrayList चर बनाएँ list
इसे एक ArrayList ऑब्जेक्ट असाइन करें।
यह सूची केवल स्ट्रिंग ऑब्जेक्ट्स को स्टोर कर सकती है।
ArrayList list = new ArrayList();
नामक एक ArrayList चर बनाएँ list
इसे एक ArrayList ऑब्जेक्ट असाइन करें। यह सूची किसी भी मान को संग्रहीत कर सकती है ।
ArrayList<Integer> list = new ArrayList<Integer>();
नामक एक ArrayList चर बनाएँ list
इसे एक ArrayList ऑब्जेक्ट असाइन करें।
यह सूची केवल स्टोर Integerऔर intवैल्यू कर सकती है।

"बहुत दिलचस्प लगता है। विशेष रूप से किसी भी प्रकार के मूल्यों को संग्रहित करने के बारे में हिस्सा ।"

"यह केवल ऐसा लगता है कि यह एक अच्छी बात है। वास्तव में, यदि हम एक विधि में एक ArrayList में तार डालते हैं और फिर यह अपेक्षा करते हैं कि इसमें दूसरी विधि में संख्याएँ हों, तो प्रोग्राम क्रैश हो जाएगा (त्रुटि के साथ समाप्त)।"

"अच्छा ऐसा है।"

"अभी के लिए, हम टाइप पैरामीटर्स के साथ अपनी खुद की कक्षाएं नहीं बनाएंगे । हम केवल मौजूदा का उपयोग करेंगे।"

"क्या कोई वर्ग एक प्रकार का पैरामीटर हो सकता है, यहां तक ​​​​कि मैं जो लिखता हूं?"

"हां। आदिम प्रकारों को छोड़कर कोई भी प्रकार। सभी प्रकार के पैरामीटर ऑब्जेक्ट क्लास से प्राप्त होने चाहिए।"

" आपका मतलब है कि मैं ArrayList <int> नहीं लिख सकता ? "

"वास्तव में, आप नहीं कर सकते। लेकिन जावा डेवलपर्स ने प्रत्येक आदिम प्रकार के लिए रैपर वर्ग लिखे हैं। ये वर्ग ऑब्जेक्ट को इनहेरिट करते हैं । यह इस तरह दिखता है:"

आदिम प्रकार कक्षा सूची
int यहाँ पूर्णांक ऐरेलिस्ट < पूर्णांक >
दोहरा दोहरा ऐरेलिस्ट < डबल >
बूलियन बूलियन ऐरेलिस्ट < बूलियन >
चार चरित्र ऐरेलिस्ट < चरित्र >
बाइट बाइट ऐरेलिस्ट < बाइट >

"आप आसानी से आदिम वर्ग और उनके अनुरूप (आवरण वर्ग) एक दूसरे को सौंप सकते हैं:"

उदाहरण
int a = 5;
Integer b = a;
int c = b;

Character c = 'c';  //the literal c is a char
char d = c;
Byte b = (byte) 77;  // The literal 77 is an int
Boolean isOk = true;  // the literal true is a boolean
Double d = 1.0d;  // The literal 1.0d is a double

"बहुत बढ़िया। मुझे लगता है कि मैं ArrayList का अधिक बार उपयोग करने का प्रयास करूँगा।"