I denne veiledningen vil vi lære om Java Wrapper-klassen ved hjelp av eksempler.
Innpakningen klasser i Java benyttet til å konvertere primitive typer ( int
, char
, float
, etc) inn i tilsvarende objekter.
Hver av de 8 primitive typene har tilsvarende innpakningsklasser.
Primitiv type | Pakkeklasse |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Konverter Primitive Type til Wrapper Objects
Vi kan også bruke valueOf()
metoden til å konvertere primitive typer til tilsvarende objekter.
Eksempel 1: Primitive typer til innpakningsobjekter
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."); ) ) )
Produksjon
Et objekt av heltal opprettes. Et objekt av Double opprettes.
I eksemplet ovenfor har vi brukt valueOf()
metoden for å konvertere de primitive typene til objekter.
Her har vi brukt instanceof
operatøren til å sjekke om de genererte objektene er av Integer
eller Double
type eller ikke.
Imidlertid kan Java-kompilatoren konvertere de primitive typene 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 prosessen er kjent som autoboksing . For å lære mer, besøk Java autoboksing og unboxing.
Merk : Vi kan også konvertere primitive typer til innpakningsobjekter ved hjelp av Wrapper
klassekonstruktører. Men bruken av konstruktører kastes etter Java 9.
Pakk objekter inn i primitive typer
For å konvertere objekter inn i primitive typer, kan vi bruke den tilsvarende verdi metoder ( intValue()
, doubleValue()
etc.) som er tilstede i hver enkelt omslag klasse.
Eksempel 2: Innpakningsobjekter 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); ) )
Produksjon
Verdien av a: 23 Verdien av b: 5,55
I det ovenstående eksempel har vi benyttet intValue()
og doubleValue()
metoden for å konvertere Integer
og Double
gjenstander inn i tilsvarende primitive typer.
Imidlertid kan Java-kompilatoren 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 prosessen er kjent som unboxing . For å lære mer, besøk Java autoboksing og unboxing.
Fordeler med emballasjeklasser
- I Java kan det hende at vi trenger å bruke objekter i stedet for primitive datatyper. For eksempel mens du jobber med samlinger.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- Vi kan lagre nullverdien i innpakningsobjekter. For eksempel,
// generates an error int a = null; // runs perfectly Integer a = null;
Merk : Primitive typer er mer effektive enn tilsvarende objekter. Derfor, når effektivitet er kravet, anbefales det alltid primitive typer.