"Ciao, Amico!"
"Oggi parlerò di autoboxing . AutoBoxing significa mettere automaticamente qualcosa in una scatola."
"Ricorderai che Java ha tipi che ereditano la classe Object, così come tipi primitivi. Ma si scopre che cose convenienti come raccolte e generici funzionano solo con tipi che ereditano Object."
"Quindi è stata presa la decisione di creare una controparte non primitiva di ogni tipo primitivo".
| Tipo primitivo | Controparte non primitiva |
|---|---|
| byte | Byte |
| corto | Corto |
| int | Numero intero |
| lungo | Lungo |
| galleggiante | Galleggiante |
| Doppio | Doppio |
| booleano | Booleano |
| char | Carattere |
| vuoto | Vuoto |
"Ma è super scomodo convertire tra questi tipi tutto il tempo:"
int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();
"Soprattutto quando si lavora direttamente con le raccolte:"
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
list.add( new Integer(i));
}
"Ecco perché i creatori di Java hanno inventato l'"autoboxing" dei tipi primitivi e l'"unboxing" delle loro controparti non primitive."
"Ecco come funziona:
| Quello che vedi | Cosa succede davvero |
|---|---|
|
|
|
|
|
|
|
|
"È tutto semplice. Puoi assegnare i tipi int e Integer tra loro e il compilatore si occupa di tutto il resto."
"È molto conveniente."
"Sì. Ma ci sono sfumature di cui parlerò più tardi."
GO TO FULL VERSION