Tässä opetusohjelmassa opitaan Java-autoboksista ja pakkauksen purkamisesta esimerkkien avulla.
Java Autoboxing - Primitiivinen tyyppi kääreobjektiin
In autoboxing , Java-kääntäjä automaattisesti muuntaa alkukantaiset niiden vastaaviksi kääre luokan objektit. Esimerkiksi,
int a = 56; // autoboxing Integer aObj = a;
Autoboxilla on suuri etu työskennellessään Java-kokoelmien kanssa.
Esimerkki 1: Java-automaattirekisteröinti
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); ) )
Tuotos
Taulukko: (5, 6)
Yllä olevassa esimerkissä olemme luoneet kokonaislukutyyppisen taulukon. Siksi taulukkoluettelossa voi olla vain Integer
tyypiltään objekteja .
Huomaa rivi,
list.add(5);
Tässä välitetään primitiivinen tyyppiarvo. Autoboxingista johtuen primitiivinen arvo kuitenkin muunnetaan automaattisesti Integer
objektiksi ja tallennetaan taulukkoluetteloon.
Java Unboxing - Wrapper-objektit alkutyyppeihin
In unboxing , Java-kääntäjä automaattisesti muuntaa kääre luokan objektit niiden vastaavat primitiivistä tyyppejä. Esimerkiksi,
// autoboxing Integer aObj = 56; // unboxing int a = aObj;
Kuten autoboxing , Unboxing voidaan käyttää myös Java kokoelmista.
Esimerkki 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); ) )
Tuotos
ArrayList: (5, 6) Arvo indeksissä 0: 5
Huomaa yllä olevassa esimerkissä viiva,
int a = list.get(0);
Tällöin get()
menetelmä palauttaa objektin hakemistoon 0. Pakkauksen poistamisen vuoksi objekti kuitenkin muunnetaan automaattisesti primitiiviseksi tyypiksi int
ja osoitetaan muuttujalle a.