"Bună, Amigo!"
„Astăzi voi vorbi despre autoboxing . AutoBoxing înseamnă a pune automat ceva într-o cutie”.
„Îți vei aminti că Java are tipuri care moștenesc clasa Object, precum și tipuri primitive. Dar se dovedește că lucrurile convenabile precum colecțiile și genericele funcționează doar cu tipurile care moștenesc Object.”
„Atunci s-a luat decizia de a face un omolog non-primitiv de fiecare tip primitiv”.
Tipul primitiv | Omologul neprimitiv |
---|---|
octet | octet |
mic de statura | Mic de statura |
int | Întreg |
lung | Lung |
pluti | Pluti |
dubla | Dubla |
boolean | boolean |
char | Caracter |
gol | Vidul |
„Dar este foarte incomod să faci o conversie între aceste tipuri tot timpul:”
int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();
„Mai ales când lucrezi direct cu colecții:”
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
list.add( new Integer(i));
}
„De aceea, creatorii Java au inventat „autoboxing” de tipuri primitive și „unboxing” pentru omologii lor non-primitivi.”
"Iată cum funcționează:
Ceea ce vedeți | Ce se întâmplă cu adevărat |
---|---|
|
|
|
|
|
|
|
|
"Totul este simplu. Puteți atribui tipuri int și Integer unul altuia, iar compilatorul se ocupă de orice altceva."
— E foarte convenabil.
— Da. Dar există nuanțe despre care voi vorbi mai târziu.
GO TO FULL VERSION