"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