V tomto tutoriále sa pomocou príkladov dozvieme o Java autoboxingu a unboxingu.
Java Autoboxing - primitívny typ na obalový objekt
V automatickom prezeraní kompilátor Java automaticky prevádza primitívne typy na príslušné objekty triedy wrapper. Napríklad,
int a = 56; // autoboxing Integer aObj = a;
Autoboxing má veľkú výhodu pri práci s kolekciami Java.
Príklad 1: Java Autoboxing
import java.util.ArrayList; class Main ( public static void main(String() args) ( ArrayList list = new ArrayList(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); ) )
Výkon
ArrayList: (5, 6)
Vo vyššie uvedenom príklade sme vytvorili zoznam polí typu Integer. Zoznam polí preto môže obsahovať iba objekty Integer
typu.
Všimnite si riadok,
list.add(5);
Tu odovzdávame hodnotu primitívneho typu. Vďaka autoboxu sa však primitívna hodnota automaticky prevedie na Integer
objekt a uloží sa do zoznamu polí.
Unboxing Java - objekty obalu na primitívne typy
V unboxingu kompilátor Java automaticky prevádza objekty triedy wrapper na zodpovedajúce primitívne typy. Napríklad,
// autoboxing Integer aObj = 56; // unboxing int a = aObj;
Rovnako ako autoboxing , aj unboxing možno použiť so zbierkami Java.
Príklad 2: Java Unboxing
import java.util.ArrayList; class Main ( public static void main(String() args) ( ArrayList list = new ArrayList(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); // unboxing int a = list.get(0); System.out.println("Value at index 0: " + a); ) )
Výkon
ArrayList: (5, 6) Hodnota v indexe 0: 5
Vo vyššie uvedenom príklade si všimnite riadok,
int a = list.get(0);
Tu get()
metóda vracia objekt na index 0. Avšak kvôli unboxingu sa objekt automaticky prevedie na primitívny typ int
a priradí sa k premennej a.