
"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