Selles õpetuses õpime näidete abil Java autoboximist ja kastivälistamist.
Java Autoboxing - primitiivne tüüp ümbriseobjektile
In autoboxing , Java kompilaator automaatselt teisendab primitiivne tüüpi oma vastava ümbrise klassi objektide kohta. Näiteks,
int a = 56; // autoboxing Integer aObj = a;
Autokastil on Java-kollektsioonidega töötamisel suur eelis.
Näide 1: Java automaatne boksimine
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äljund
ArrayList: (5, 6)
Ülaltoodud näites oleme loonud täisarvu massiivi loendi. Seega saab massiivide loendisse mahutada ainult Integer
tüüpi objekte .
Pange tähele joont,
list.add(5);
Siin edastame primitiivse tüübi väärtuse. Autoboksimise tõttu teisendatakse aga primitiivne väärtus automaatselt Integer
objektiks ja salvestatakse massiivide loendisse.
Java Unboxing - ümbriste esemed ürgsetele tüüpidele
In lahtipakkimisvideod , Java kompilaator automaatselt teisendab ümbris klassi objektid oma vastavate primitiivne tüüpi. Näiteks,
// autoboxing Integer aObj = 56; // unboxing int a = aObj;
Nagu autoboxing , lahtipakkimisvideod saab kasutada ka koos Java kogud.
Näide 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äljund
ArrayList: (5, 6) Väärtus indeksis 0: 5
Ülaltoodud näites märkake rida,
int a = list.get(0);
Siin get()
tagastab meetod objekti indeksile 0. Kuid kastivälise pakkimise tõttu teisendatakse objekt automaatselt primitiivseks tüübiks int
ja määratakse muutujale a.