"Hej, Amigo!"
"Idag ska jag berätta om autoboxning . AutoBoxing betyder att automatiskt lägga något i en låda."
"Du kommer ihåg att Java har typer som ärver Object-klassen, såväl som primitiva typer. Men det visar sig att praktiska saker som samlingar och generika bara fungerar med typer som ärver Object."
"Då togs beslutet att göra en icke-primitiv motsvarighet av varje primitiv typ."
| Primitiv typ | Icke-primitiv motsvarighet |
|---|---|
| byte | Byte |
| kort | Kort |
| int | Heltal |
| lång | Lång |
| flyta | Flyta |
| dubbel | Dubbel |
| booleskt | Boolean |
| röding | Karaktär |
| tomhet | Tomhet |
"Men det är väldigt obekvämt att konvertera mellan dessa typer hela tiden:"
int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();
"Särskilt när man arbetar direkt med samlingar:"
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
list.add( new Integer(i));
}
"Det är därför Javas skapare uppfann "autoboxning" av primitiva typer och "unboxing" till sina icke-primitiva motsvarigheter."
"Så här fungerar det:
| Vad du ser | Vad händer egentligen |
|---|---|
|
|
|
|
|
|
|
|
"Allt är enkelt. Du kan tilldela int- och heltalstyper till varandra, och kompilatorn tar hand om allt annat."
"Det är väldigt bekvämt."
"Japp. Men det finns nyanser som jag ska prata om senare."
GO TO FULL VERSION