I denne vejledning lærer vi om Java Wrapper-klassen ved hjælp af eksempler.
De wrapper klasser i Java bruges til at konvertere primitive typer ( int
, char
, float
, osv) i tilsvarende genstande.
Hver af de 8 primitive typer har tilsvarende indpakningsklasser.
Primitiv type | Indpakningsklasse |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Konverter primitiv type til indpakningsgenstande
Vi kan også bruge valueOf()
metoden til at konvertere primitive typer til tilsvarende objekter.
Eksempel 1: Primitive typer til indpakningsgenstande
class Main ( public static void main(String() args) ( // create primitive types int a = 5; double b = 5.65; //converts into wrapper objects Integer aObj = Integer.valueOf(a); Double bObj = Double.valueOf(b); if(aObj instanceof Integer) ( System.out.println("An object of Integer is created."); ) if(bObj instanceof Double) ( System.out.println("An object of Double is created."); ) ) )
Produktion
Et objekt af heltal oprettes. Et objekt med dobbelt oprettes.
I ovenstående eksempel har vi brugt valueOf()
metoden til at konvertere de primitive typer til objekter.
Her har vi brugt instanceof
operatøren til at kontrollere, om de genererede objekter er af Integer
eller Double
type eller ej.
Imidlertid kan Java-kompilatoren konvertere de primitive typer direkte til tilsvarende objekter. For eksempel,
int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b;
Denne proces kaldes automatisk boksning . Hvis du vil vide mere, skal du besøge Java autoboxing og unboxing.
Bemærk : Vi kan også konvertere primitive typer til indpakningsobjekter ved hjælp af Wrapper
klassekonstruktører. Men brugen af konstruktører kasseres efter Java 9.
Indpakningsgenstande til primitive typer
At konvertere genstande ind i primitive typer, kan vi bruge de tilsvarende værdi fremgangsmåder ( intValue()
, doubleValue()
osv) til stede i hver wrapper klasse.
Eksempel 2: Indpakningsgenstande til primitive typer
class Main ( public static void main(String() args) ( // creates objects of wrapper class Integer aObj = Integer.valueOf(23); Double bObj = Double.valueOf(5.55); // converts into primitive types int a = aObj.intValue(); double b = bObj.doubleValue(); System.out.println("The value of a: " + a); System.out.println("The value of b: " + b); ) )
Produktion
Værdien af a: 23 Værdien af b: 5,55
I ovenstående eksempel har vi brugt intValue()
og doubleValue()
metode til at konvertere Integer
og Double
genstande til tilsvarende primitive typer.
Java-kompilatoren kan dog automatisk konvertere objekter til tilsvarende primitive typer. For eksempel,
Integer aObj = Integer.valueOf(2); // converts into int type int a = aObj; Double bObj = Double.valueOf(5.55); // converts into double type double b = bObj;
Denne proces kaldes unboxing . Hvis du vil vide mere, skal du besøge Java autoboxing og unboxing.
Fordele ved indpakningsklasser
- I Java er vi nogle gange nødt til at bruge objekter i stedet for primitive datatyper. For eksempel mens du arbejder med samlinger.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- Vi kan gemme nulværdien i indpakningsobjekter. For eksempel,
// generates an error int a = null; // runs perfectly Integer a = null;
Bemærk : Primitive typer er mere effektive end tilsvarende objekter. Derfor, når effektivitet er kravet, anbefales det altid primitive typer.