Java Wrapper Class (s příklady)

V tomto výukovém programu se na příkladech seznámíme s třídou Java Wrapper.

Obalu tříd v Javě slouží k převodu primitivní typy ( int, char, floatatd) do příslušných objektů.

Každý z 8 primitivních typů má odpovídající třídy obalů.

Primitivní typ Obalová třída
byte Byte
boolean Boolean
char Character
double Double
float Float
int Integer
long Long
short Short

Převeďte primitivní typ na obalovací objekty

valueOf()Metodu můžeme také použít k převodu primitivních typů na odpovídající objekty.

Příklad 1: Primitivní typy k obalovým objektům

 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."); ) ) ) 

Výstup

Vytvoří se objekt Integer. Vytvoří se objekt Double.

Ve výše uvedeném příkladu jsme použili valueOf()metodu k převodu primitivních typů na objekty.

Zde jsme použili instanceofoperátor ke kontrole, zda jsou vytvořené objekty jsou Integernebo Doubledruhu, či nikoli.

Kompilátor Java však může přímo převést primitivní typy na odpovídající objekty. Například,

 int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b; 

Tento proces se nazývá automatický box . Chcete-li se dozvědět více, navštivte autoboxing a unboxing prostředí Java.

Poznámka : Můžeme také převést primitivní typy na obálkové objekty pomocí Wrapperkonstruktorů tříd. Ale po Java 9 je použití konstruktorů zahozeno.

Zabalte objekty do primitivních typů

Pro převod objektů do primitivních typů, lze použít odpovídající metody hodnot ( intValue(), doubleValue(), atd), přítomný v každé třídě obálky.

Příklad 2: Zabalení objektů do primitivních typů

 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); ) ) 

Výstup

 Hodnota a: 23 Hodnota b: 5,55 

Ve výše uvedeném příkladu jsme použili metodu intValue()and doubleValue()k převodu objektů Integera Doublena odpovídající primitivní typy.

Kompilátor Java však může automaticky převádět objekty na odpovídající primitivní typy. Například,

 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; 

Tento proces se nazývá unboxing . Chcete-li se dozvědět více, navštivte autoboxing a unboxing prostředí Java.

Výhody tříd obalovačů

  • V Javě někdy budeme muset použít objekty namísto primitivních datových typů. Například při práci se sbírkami.
     // error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
    V takových případech nám souhrnné třídy pomáhají používat primitivní datové typy jako objekty.
  • Můžeme uložit hodnotu null v obalových objektech. Například,
      // generates an error int a = null; // runs perfectly Integer a = null; 

Poznámka : Primitivní typy jsou efektivnější než odpovídající objekty. Proto je-li požadována účinnost, vždy se doporučují primitivní typy.

Zajímavé články...