„Здрасти, Амиго!“
„Днес ще разкажа за автобоксиране . Автобоксиране означава автоматично поставяне на нещо в кутия.“
„Сигурно си спомняте, че 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