CodeGym /Java kurs /Java Multithreading /Autoboksing (uforanderlige)

Autoboksing (uforanderlige)

Java Multithreading
Nivå , Lekse
Tilgjengelig
Autoboksing (uforanderlige) - 1

"Hei, Amigo!"

"I dag skal jeg fortelle om autoboksing . Autoboksing betyr å automatisk legge noe i en boks."

"Du vil huske at Java har typer som arver Object-klassen, så vel som primitive typer. Men det viser seg at praktiske ting som samlinger og generikk bare fungerer med typer som arver Object."

"Da ble beslutningen tatt om å lage et ikke-primitivt motstykke av hver primitiv type."

Primitiv type Ikke-primitiv motpart
byte Byte
kort Kort
int Heltall
lang Lang
flyte Flyte
dobbelt Dobbelt
boolsk boolsk
røye Karakter
tomrom Tomrom

"Men det er veldig upraktisk å konvertere mellom disse typene hele tiden:"

int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();

"Spesielt når du jobber direkte med samlinger:"

Eksempel
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
 list.add( new Integer(i));
}

"Det er derfor Javas skapere oppfant «autoboxing» av primitive typer deres og «unboxing» til deres ikke-primitive motparter."

"Slik fungerer det:

Det du ser Hva skjer egentlig
int x = 3;
Integer y = x + 1;
int x = 3;
Integer y = Integer.valueOf(x + 1);
int z = y;
int z = y.intValue();
Boolean b = Boolean.FALSE;
boolean a = b;
Boolean b = Boolean.FALSE;
boolean a = b.booleanValue();
Integer x = null;
int y = x;
Integer x = null; int y = x.intValue(); //Throws an exception

"Det hele er enkelt. Du kan tilordne int- og Integer-typer til hverandre, og kompilatoren tar seg av alt annet."

"Det er veldig praktisk."

"Japp. Men det er nyanser som jeg skal snakke om senere."

Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION