অটোবক্সিং (অপরিবর্তনীয়) - 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 প্রকার নির্ধারণ করতে পারেন, এবং কম্পাইলার অন্য সবকিছুর যত্ন নেয়।"

"এটা খুব সুবিধাজনক।"

"হ্যাঁ। কিন্তু কিছু সূক্ষ্মতা আছে যেগুলো নিয়ে পরে কথা বলবো।"