Wrapper Classes & Autoboxing
Wrapper classes क्या हैं
Wrapper classes primitive type को object में बदलती हैं। हर primitive की एक मेल खाती class है: int → Integer, double → Double, वग़ैरह। यह ज़रूरी है क्योंकि Java के कुछ हिस्से (जैसे collections) सिर्फ़ objects के साथ काम करते हैं, primitives के साथ नहीं।
Wrapper classes
| Primitive | Wrapper |
|---|---|
| int | Integer |
| double | Double |
| char | Character |
| boolean | Boolean |
| long | Long |
आठों primitives में से हर एक की wrapper class है। ध्यान दीजिए ज़्यादातर बस नाम बड़ा करते हैं, पर int, Integer और char, Character बनता है।
Autoboxing और unboxing
Integer boxed = 5; // autoboxing: int -> Integer int unboxed = boxed; // unboxing: Integer -> int System.out.println(boxed + " " + unboxed);
Java अपने-आप बदलती है: autoboxing int को Integer में wrap करता है, और unboxing int वापस निकालता है। आप आमतौर पर हाथ से नहीं बदलते — Java संभालती है।
हमें क्यों चाहिए
import java.util.ArrayList; ArrayList<Integer> list = new ArrayList<>(); list.add(10); // Integer में autoboxed list.add(20); System.out.println(list.get(0));
Collections objects store करती हैं, तो आप ArrayList<Integer> लिखते हैं, ArrayList<int> नहीं। Wrapper classes numbers को इन object-based collections में रहने देती हैं, autoboxing conversion करके।
Strings को numbers में बदलना
int n = Integer.parseInt("123");
double d = Double.parseDouble("9.5");
System.out.println(n + d);
Wrapper classes text को numbers में बदलने को parseInt और parseDouble देती हैं — numeric input को strings के रूप में पढ़ते समय ज़रूरी।
उपयोगी wrapper methods
System.out.println(Integer.MAX_VALUE); // सबसे बड़ा int
System.out.println(Integer.toBinaryString(10)); // 1010
System.out.println(Character.isDigit('5')); // true
1010
true
Wrapper classes सुविधाजनक constants और methods रखती हैं, जैसे Integer.MAX_VALUE, base conversions, और character जाँच — जो साधारण primitive नहीं दे सकता।
आम गलतियाँ
- Collection में primitive इस्तेमाल करना। Wrapper इस्तेमाल कीजिए:
ArrayList<Integer>,<int>नहीं। - Null unboxing। null Integer को int में unbox करना NullPointerException देता है।
- Wrappers को
==से तुलना। Integer objects की value तुलना कोequals()इस्तेमाल कीजिए। - गलत wrapper नाम। यह
IntegerऔरCharacterहै,IntयाCharनहीं।
सारांश
- Wrapper classes primitives को objects में बदलती हैं (int → Integer)।
- Autoboxing और unboxing इनके बीच अपने-आप बदलते हैं।
- Collections को wrappers चाहिए क्योंकि वे objects store करती हैं।
- Strings को numbers में बदलने को
parseInt/parseDoubleइस्तेमाल कीजिए। - Wrappers उपयोगी constants और methods जोड़ती हैं जो primitives में नहीं।
आगे, इन्हें ArrayList में store कीजिए, या types बदलिए type casting से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
Java में wrapper class क्या है?
Integer, int को wrap करता है, और Double, double को। यह primitives को वहाँ इस्तेमाल होने देता है जहाँ objects चाहिए, जैसे collections में।Autoboxing और unboxing क्या है?
Collections को wrapper classes क्यों चाहिए?
ArrayList<Integer> इस्तेमाल करते हैं, ArrayList<int> नहीं। Wrapper classes primitive values को इन object-based collections के अंदर रहने देती हैं।String को int में कैसे बदलूँ?
Integer.parseInt("123") इस्तेमाल कीजिए, जो int 123 लौटाता है। इसी तरह Double.parseDouble("9.5") double देता है। ये wrapper methods text को numbers में बदलने का standard तरीका हैं।int और Integer में क्या अंतर है?
int primitive है जो value सीधे store करता है और null नहीं हो सकता। Integer object है जो int को wrap करता है, null हो सकता है, और उपयोगी methods रखता है, पर थोड़ी ज़्यादा memory इस्तेमाल करता है।