W tym samouczku dowiemy się o automatycznym blokowaniu i rozpakowywaniu Java na podstawie przykładów.
Java Autoboxing - typ prymitywny do obiektu opakowującego
W przypadku autoboxingu kompilator Java automatycznie konwertuje typy pierwotne na odpowiadające im obiekty klasy opakowania. Na przykład,
int a = 56; // autoboxing Integer aObj = a;
Autoboxing ma wielką zaletę podczas pracy z kolekcjami Java.
Przykład 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); ) )
Wynik
ArrayList: (5, 6)
W powyższym przykładzie utworzyliśmy listę tablicową typu Integer. Dlatego lista tablic może zawierać tylko obiekty Integer
typu.
Zwróć uwagę na linię,
list.add(5);
Tutaj przekazujemy wartość typu pierwotnego. Jednak ze względu na autoboxing wartość pierwotna jest automatycznie konwertowana na Integer
obiekt i zapisywana na liście tablic.
Rozpakowywanie Java - pakowanie obiektów do typów pierwotnych
Podczas rozpakowywania kompilator języka Java automatycznie konwertuje obiekty klasy opakowania na odpowiadające im typy pierwotne. Na przykład,
// autoboxing Integer aObj = 56; // unboxing int a = aObj;
Podobnie jak autoboxing , unboxing może być również używany w przypadku kolekcji Java.
Przykład 2: Rozpakowywanie Java
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); ) )
Wynik
ArrayList: (5, 6) Wartość w indeksie 0: 5
W powyższym przykładzie zwróć uwagę na linię,
int a = list.get(0);
W tym przypadku get()
metoda zwraca obiekt z indeksem 0. Jednak w wyniku rozpakowania obiekt jest automatycznie konwertowany na typ pierwotny int
i przypisywany do zmiennej a.