
"Olá, amigo!"
"Hoje vou falar sobre autoboxing . AutoBoxing significa colocar algo automaticamente em uma caixa."
"Você deve se lembrar que Java tem tipos que herdam a classe Object, bem como tipos primitivos. Mas acontece que coisas convenientes como coleções e genéricos só funcionam com tipos que herdam Object."
"Então foi tomada a decisão de fazer uma contraparte não primitiva de todos os tipos primitivos."
tipo primitivo | Contraparte não primitiva |
---|---|
byte | Byte |
curto | Curto |
int | inteiro |
longo | Longo |
flutuador | Flutuador |
dobro | Dobro |
boleano | boleano |
Caracteres | Personagem |
vazio | Vazio |
"Mas é super inconveniente converter entre esses tipos o tempo todo:"
int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();
"Especialmente ao trabalhar diretamente com coleções:"
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
list.add( new Integer(i));
}
"É por isso que os criadores de Java inventaram o «autoboxing» de seus tipos primitivos e o 'unboxing' de seus equivalentes não primitivos."
"É assim que funciona:
O que você vê | O que realmente acontece |
---|---|
|
|
|
|
|
|
|
|
"É tudo simples. Você pode atribuir tipos int e Integer um ao outro, e o compilador cuida de todo o resto."
"Isso é muito conveniente."
"Sim. Mas há nuances sobre as quais falarei mais tarde."
GO TO FULL VERSION