"आणखी एक मस्त विषय."

"सरप्राईज येतच राहतात! माझा वाढदिवस आहे का?"

"आज, मी तुम्हाला जेनेरिक्सबद्दल सांगेन. जेनेरिक्स असे प्रकार आहेत ज्यांचे पॅरामीटर असते. जावामध्ये, कंटेनर क्लास तुम्हाला त्यांच्या आतील वस्तूंचा प्रकार सूचित करू देतात."

"जेव्हा आम्ही जेनेरिक व्हेरिएबल घोषित करतो, तेव्हा आम्ही एका ऐवजी दोन प्रकार सूचित करतो: व्हेरिएबल प्रकार आणि तो संग्रहित केलेल्या डेटाचा प्रकार."

"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> लिहू शकत नाही ? "

"खरंच, तुम्ही हे करू शकत नाही. पण Java डेव्हलपर्सनी प्रत्येक आदिम प्रकारासाठी रॅपर क्लासेस लिहिले आहेत. या क्लासेसना ऑब्जेक्टचा वारसा मिळतो . हे असे दिसते:"

आदिम प्रकार वर्ग यादी
int पूर्णांक ArrayList< पूर्णांक >
दुप्पट दुहेरी ArrayList< दुहेरी >
बुलियन बुलियन ArrayList< बूलियन >
चार वर्ण ArrayList< वर्ण >
बाइट बाइट अॅरेलिस्ट< बाइट >

"आपण एकमेकांना आदिम वर्ग आणि त्यांचे analogs (रॅपर वर्ग) सहजपणे नियुक्त करू शकता:"

उदाहरणे
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 वापरण्याचा प्रयत्न करेन."