Ebben az oktatóanyagban példák segítségével megismerhetjük a Java Wrapper osztályt.
A wrapper osztályok Java alkalmazások segítségével alakíthatóak primitív típusok ( int
, char
, float
stb) a megfelelő tárgyakat.
A 8 primitív típus mindegyike rendelkezik megfelelő burkoló osztályokkal.
Primitív típus | Burkoló osztály |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
A primitív típus átalakítása tekercselő objektumokká
Használhatjuk a valueOf()
módszert a primitív típusok megfelelő objektummá alakítására is.
1. példa: Primitív típusok a burkoló objektumokhoz
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."); ) ) )
Kimenet
Létrejön egy egész szám objektuma. Létrejön egy Double objektum.
A fenti példában valueOf()
a primitív típusok objektummá alakítására használtuk a módszert.
Itt már használják a instanceof
kezelőt, hogy ellenőrizze, hogy a generált tárgyak a Integer
vagy Double
típus, vagy sem.
A Java fordító azonban közvetlenül átalakíthatja a primitív típusokat megfelelő objektumokká. Például,
int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b;
Ez a folyamat auto-box néven ismert . További információért keresse fel a Java autoboxing és unboxing oldalt.
Megjegyzés : A primitív típusokat átalakíthatjuk burkoló objektumokká is az Wrapper
osztály konstruktorok segítségével. De a konstruktorok használatát a Java 9 után elvetik.
Wrapper objektumok primitív típusokba
Konvertálásához tárgyat a primitív típusokat, tudjuk használni a megfelelő érték módszerek ( intValue()
, doubleValue()
, stb) jelen az egyes wrapper class.
2. példa: Csomagoló objektumok primitív típusokba
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); ) )
Kimenet
A értéke: 23 A b értéke: 5,55
A fenti példában az intValue()
és doubleValue()
metódust alkalmaztuk az Integer
és Double
objektumok megfelelő primitív típusokká alakítására.
A Java fordító azonban automatikusan átalakíthatja az objektumokat megfelelő primitív típusokká. Például,
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;
Ez a folyamat unboxing néven ismert . További információért keresse fel a Java autoboxing és unboxing oldalt.
A burkoló osztályok előnyei
- A Java-ban néha objektumokat kell használnunk primitív adattípusok helyett. Például a gyűjteményekkel való munka közben.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- Tárolhatjuk a null értéket burkoló objektumokban. Például,
// generates an error int a = null; // runs perfectly Integer a = null;
Megjegyzés : A primitív típusok hatékonyabbak, mint a megfelelő objektumok. Ezért, ha a hatékonyság a követelmény, mindig primitív típusokat ajánlunk.