V tomto tutoriále sa pomocou príkladov dozvieme niečo o triede Java Wrapper.
Obalu tried v Jave slúži k prevodu primitívne typy ( int
, char
, float
atď) do príslušných objektov.
Každý z 8 primitívnych typov má zodpovedajúce triedy wrapperov.
Primitívny typ | Triedička zavinovačiek |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Preveďte primitívny typ na obaľovacie objekty
valueOf()
Metódu môžeme použiť aj na prevod primitívnych typov na zodpovedajúce objekty.
Príklad 1: Primitívne typy na obaľovacie objekty
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ýkon
Vytvorí sa objekt celého čísla. Vytvorí sa objekt Double.
Vo vyššie uvedenom príklade sme použili valueOf()
metódu na prevod primitívnych typov na objekty.
Tu sme pomocou instanceof
operátora skontrolovali, či sú Integer
alebo sú generované objekty Double
typu alebo nie.
Kompilátor Java však môže primitívne typy priamo konvertovať na zodpovedajúce objekty. Napríklad,
int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b;
Tento proces sa nazýva automatický box . Ak sa chcete dozvedieť viac, navštívte Java autoboxing a unboxing.
Poznámka : Primitívne typy môžeme tiež konvertovať na obalové objekty pomocou Wrapper
konštruktorov triedy. Ale po Java 9 je použitie konštruktorov zahodené.
Zbaliť objekty do primitívnych typov
Pre prevod objektov do primitívnych typov, možno použiť zodpovedajúcu metódy hodnôt ( intValue()
, doubleValue()
atď), prítomný v každej triede obálky.
Príklad 2: Zabaľte objekty do primitívnych typov
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ýkon
Hodnota a: 23 Hodnota b: 5,55
Vo vyššie uvedenom príklade sme použili metódu intValue()
and doubleValue()
na prevod objektov Integer
a Double
na zodpovedajúce primitívne typy.
Kompilátor Java však môže automaticky prevádzať objekty na zodpovedajúce primitívne typy. Naprí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 sa nazýva unboxing . Ak sa chcete dozvedieť viac, navštívte Java autoboxing a unboxing.
Výhody triedičiek obalov
- V prostredí Java niekedy budeme musieť použiť objekty namiesto primitívnych dátových typov. Napríklad pri práci so zbierkami.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- Nulovú hodnotu môžeme uložiť do obalových objektov. Napríklad,
// generates an error int a = null; // runs perfectly Integer a = null;
Poznámka : Primitívne typy sú efektívnejšie ako zodpovedajúce objekty. Preto, keď je požiadavkou efektívnosť, vždy sa odporúčajú primitívne typy.