Autoboxing i unboxing Java

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 Integertypu.

Zwróć uwagę na linię,

 list.add(5); 

Tutaj przekazujemy wartość typu pierwotnego. Jednak ze względu na autoboxing wartość pierwotna jest automatycznie konwertowana na Integerobiekt 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 inti przypisywany do zmiennej a.

Interesujące artykuły...