Java-autoboxing ja pakkauksen purkaminen

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 Integertyypiltään objekteja .

Huomaa rivi,

 list.add(5); 

Tässä välitetään primitiivinen tyyppiarvo. Autoboxingista johtuen primitiivinen arvo kuitenkin muunnetaan automaattisesti Integerobjektiksi 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 intja osoitetaan muuttujalle a.

Mielenkiintoisia artikkeleita...