Video: 9.7 Wrapper Class in Java Tutorial 2025
Forskellen mellem primitive typer og referencetyper er en af Java's mest kontroversielle funktioner, og udviklere klager ofte over forskellene mellem primitive værdier og referenceværdier.
-
Hver primitiv type bages i sproget.
Java har otte primitive typer.
-
Hver referencetype er en klasse eller en grænseflade.
Du kan definere din egen referencetype. Så antallet af referencetyper i Java er muligvis uendelig.
Her er en af de primitive-versus-reference-type "gotchas:" Du kan ikke gemme en primitiv værdi i en ArrayList. Du kan skrive
// DETTE ER OK: ArrayList arrayList = Ny ArrayList ();
fordi String er en referencetype. Men du kan ikke skrive
// GØR IKKE DETTE: ArrayList arrayList = new ArrayList ();
fordi int er en primitiv type. Heldigvis har hver af Java's primitive typer en wrapper type, som er en referencetype, hvis formål er at indeholde en anden type værdi. For eksempel indeholder en genstand for Java's Integer-type en enkelt int-værdi. Et objekt af Java's dobbelttype indeholder en enkelt dobbeltværdi. Et objekt af Java's tegntype indeholder en enkelt char-værdi. Du kan ikke oprette en ArrayList of int værdier, men du kan oprette en ArrayList of Integer værdier.
// DETTE ER OK: ArrayList arrayList = Ny ArrayList ();
Hver primitive type navn begynder med et lille bogstav. Hver indpakningstype navn begynder med et stort bogstav.
Ud over at indeholde primitive værdier giver wrapper klasser nyttige metoder til at arbejde med primitive værdier. For eksempel indeholder Integer wrapper klassen parseInt og andre nyttige metoder til at arbejde med int værdier:
Strenge streng = "17"; int nummer = heltal. parseInt (streng);
På downside kan arbejdet med omslagstyper være klodset. For eksempel kan du ikke bruge aritmetiske operatører med Java's numeriske indpakningstyper. Her er vejen til at oprette to helhedsværdier og tilføje dem sammen:
Integer myInteger = nyt heltal (3); Integer myOtherInteger = nyt heltal (15); Integer sum = myInteger. intValue () + myOtherInteger. intValue ();