
„Здрасти, Амиго!“
„Днес ще разкажа за автобоксиране . Автобоксиране означава автоматично поставяне на нещо в кутия.“
„Сигурно си спомняте, че Java има типове, които наследяват класа Object, Howто и примитивни типове. Но се оказва, че удобни неща като колекции и генерични файлове работят само с типове, които наследяват Object.“
„Тогава беше взето решение да се направи непримитивен аналог на всеки примитивен тип.“
Примитивен тип | Непримитивен двойник |
---|---|
byte | Байт |
къс | Къс |
вътр | Цяло число |
дълго | Дълги |
плавам | Поплавък |
двойно | Двойна |
булево | Булева стойност |
въглен | Характер |
невалиден | Празнота |
„Но е супер неудобно да конвертирате между тези типове през цялото време:“
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));
}
„Ето защо създателите на Java измислиха „автобоксиране“ на техните примитивни типове и „разопаковане“ на техните не-примитивни двойници.“
„Ето How работи:
Какво виждаш | Какво наистина се случва |
---|---|
|
|
|
|
|
|
|
|
„Всичко е просто. Можете да присвоите типове int и Integer един към друг, а компилаторът се грижи за всичко останало.“
— Това е много удобно.
"Да. Но има нюанси, за които ще говоря по-късно."
GO TO FULL VERSION