In deze tutorial leren we met behulp van voorbeelden over de Java Wrapper-klasse.
De wrapperklassen Java gebruikt primitieve types (converteren int
, char
, float
etc.) in overeenkomstige voorwerpen.
Elk van de 8 primitieve typen heeft overeenkomstige wrapper-klassen.
Primitief type | Wikkelklasse |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Converteer primitief type naar wrapper-objecten
We kunnen de valueOf()
methode ook gebruiken om primitieve typen om te zetten in overeenkomstige objecten.
Voorbeeld 1: primitieve typen voor wrapper-objecten
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."); ) ) )
Uitvoer
Er wordt een geheel getal gemaakt. Er wordt een object van Double gemaakt.
In het bovenstaande voorbeeld hebben we de valueOf()
methode gebruikt om de primitieve typen om te zetten in objecten.
Hier hebben we de instanceof
operator gebruikt om te controleren of de gegenereerde objecten van Integer
of Double
type zijn of niet.
De Java-compiler kan de primitieve typen echter rechtstreeks naar overeenkomstige objecten converteren. Bijvoorbeeld,
int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b;
Dit proces staat bekend als automatisch boksen . Ga voor meer informatie naar Java autoboxing en unboxing.
Opmerking : we kunnen primitieve typen ook converteren naar wrapper-objecten met behulp van Wrapper
klasseconstructors. Maar het gebruik van constructors wordt na Java 9 weggegooid.
Wrapper-objecten in primitieve typen
Om objecten te zetten in de primitieve types, kunnen we de corresponderende waarde methoden ( intValue()
, doubleValue()
etc.) in elk wrapperklasse.
Voorbeeld 2: Wrapper-objecten in primitieve typen
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); ) )
Uitvoer
De waarde van a: 23 De waarde van b: 5,55
In het bovenstaande voorbeeld hebben we de intValue()
en doubleValue()
methode gebruikt om de Integer
en Double
objecten om te zetten in overeenkomstige primitieve typen.
De Java-compiler kan objecten echter automatisch omzetten in overeenkomstige primitieve typen. Bijvoorbeeld,
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;
Dit proces staat bekend als unboxing . Ga voor meer informatie naar Java autoboxing en unboxing.
Voordelen van wrapper-klassen
- In Java moeten we soms objecten gebruiken in plaats van primitieve gegevenstypen. Bijvoorbeeld tijdens het werken met verzamelingen.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- We kunnen de null-waarde opslaan in wrapper-objecten. Bijvoorbeeld,
// generates an error int a = null; // runs perfectly Integer a = null;
Opmerking : primitieve typen zijn efficiënter dan overeenkomstige objecten. Daarom, wanneer efficiëntie de vereiste is, zijn het altijd aanbevolen primitieve typen.