ऑटोबॉक्सिंग (अपरिवर्तनीय) - 1

"हाय, अमीगो!"

"आज मैं ऑटोबॉक्सिंग के बारे में बताउंगा । ऑटोबॉक्सिंग का मतलब है अपने आप किसी बॉक्स में कुछ डालना।"

"आपको याद होगा कि जावा में ऐसे प्रकार हैं जो ऑब्जेक्ट क्लास के साथ-साथ आदिम प्रकार को भी प्राप्त करते हैं। लेकिन यह पता चला है कि संग्रह और जेनरिक के रूप में सुविधाजनक चीजें केवल उन प्रकारों के साथ काम करती हैं जो ऑब्जेक्ट को इनहेरिट करते हैं।"

"फिर हर आदिम प्रकार का एक गैर-आदिम प्रतिरूप बनाने का निर्णय लिया गया।"

आदिम प्रकार गैर-आदिम समकक्ष
बाइट बाइट
छोटा छोटा
int यहाँ पूर्णांक
लंबा लंबा
तैरना तैरना
दोहरा दोहरा
बूलियन बूलियन
चार चरित्र
खालीपन खालीपन

"लेकिन हर समय इन प्रकारों के बीच रूपांतरण करना बेहद असुविधाजनक है:"

int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();

"विशेष रूप से संग्रह के साथ सीधे काम करते समय:"

उदाहरण
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
 list.add( new Integer(i));
}

"यही कारण है कि जावा के रचनाकारों ने आदिम प्रकारों के «ऑटोबॉक्सिंग» और उनके गैर-आदिम समकक्षों के लिए 'अनबॉक्सिंग' का आविष्कार किया।"

"यह ऐसे काम करता है:

आपने क्या देखा वास्तव में क्या होता है
int x = 3;
Integer y = x + 1;
int x = 3;
Integer y = Integer.valueOf(x + 1);
int z = y;
int z = y.intValue();
Boolean b = Boolean.FALSE;
boolean a = b;
Boolean b = Boolean.FALSE;
boolean a = b.booleanValue();
Integer x = null;
int y = x;
Integer x = null; int y = x.intValue(); //Throws an exception

"यह सब आसान है। आप एक दूसरे को int और Integer टाइप असाइन कर सकते हैं, और कंपाइलर बाकी सब चीजों का ध्यान रखता है।"

"यह बहुत सुविधाजनक है।"

"हाँ। लेकिन कुछ बारीकियाँ हैं जिनके बारे में मैं बाद में बात करूँगा।"