Šioje pamokoje, naudodamiesi pavyzdžiais, sužinosime apie „Java“ automatinį naršymą ir dėžutės išpakavimą.
„Java Autoboxing“ - primityvus objekto tipas įvyniotojui
Be autoboxing , Java kompiliatorius automatiškai konvertuoja primityvius tipus į jų atitinkamų įvynioti klasės objektų. Pavyzdžiui,
int a = 56; // autoboxing Integer aObj = a;
„Autoboxing“ turi didelį pranašumą dirbant su „Java“ kolekcijomis.
1 pavyzdys: „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); ) )
Rezultatas
Masyvo sąrašas: (5, 6)
Ankstesniame pavyzdyje mes sukūrėme sveikojo tipo masyvų sąrašą. Taigi masyvų sąraše gali būti tik Integer
tipo objektai .
Atkreipkite dėmesį į eilutę,
list.add(5);
Čia mes perduodame primityvią tipo vertę. Tačiau dėl autoboksavimo pirminė reikšmė automatiškai paverčiama Integer
objektu ir saugoma masyvų sąraše.
„Java Unboxing“ - „Wrapper“ objektai, skirti primityviems tipams
Be Unboxing , Java kompiliatorius automatiškai konvertuoja įvynioti klasės objektai į jų atitinkamų primityvių tipų. Pavyzdžiui,
// autoboxing Integer aObj = 56; // unboxing int a = aObj;
Kaip autoboxing , Unboxing taip pat gali būti naudojamas su "Java" kolekcijų.
2 pavyzdys: „Java“ neišpakavimas
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); ) )
Rezultatas
„ArrayList“: (5, 6) Indekso 0: 5 vertė
Ankstesniame pavyzdyje atkreipkite dėmesį į eilutę,
int a = list.get(0);
Čia get()
metodas grąžina objektą į indeksą 0. Tačiau dėl neišpakavimo objektas automatiškai konvertuojamas į primityvų tipą int
ir priskiriamas kintamajam a.