Mahir Java Autoboxing dan Unboxing: Contoh Praktis dan Best Practices
Java Autoboxing and Unboxing
Jelajahi bagaimana Java secara otomatis mengonversi antara tipe primitif dan objek wrapper, dan lihat contoh dunia nyata yang mengilustrasikan prosesnya.
Java Autoboxing – Dari Primitif ke Objek Wrapper
Saat Anda menetapkan nilai primitif ke variabel dari kelas wrapper, compiler Java melakukan autoboxing dan membuat objek wrapper yang sesuai. Contohnya:
int a = 56; // autoboxing Integer aObj = a;
Autoboxing sangat berguna saat bekerja dengan koleksi generik yang hanya menerima objek. Ini menjaga kode tetap ringkas dan type-safe.
Contoh 1: Autoboxing dengan ArrayList
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); // autoboxing: primitif 5 dan 6 menjadi objek Integer list.add(5); list.add(6); System.out.println("ArrayList: " + list); } }
Output
ArrayList: [5, 6]
Dalam cuplikan ini, ArrayList menyimpan objek Integer. Compiler secara otomatis melakukan box pada literal primitif 5 dan 6.
Java Unboxing – Dari Objek Wrapper ke Primitif
Sebaliknya, unboxing mengonversi objek wrapper kembali ke bentuk primitifnya. Contohnya:
// autoboxing Integer aObj = 56; // unboxing int a = aObj;
Unboxing bekerja dengan lancar dengan koleksi, memungkinkan Anda mengambil nilai sebagai primitif saat diperlukan.
Contoh 2: Unboxing dari ArrayList
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<Integer> list = new ArrayList<>(); list.add(5); list.add(6); System.out.println("ArrayList: " + list); // unboxing: Integer di indeks 0 menjadi int int a = list.get(0); System.out.println("Value at index 0: " + a); } }
Output
ArrayList: [5, 6] Value at index 0: 5
Di sini, list.get(0) mengembalikan Integer; compiler secara otomatis melakukan unboxing ke int untuk penugasan ke a.
Memahami autoboxing dan unboxing membantu Anda menulis kode Java yang lebih bersih dan lebih efisien, terutama saat berinteraksi dengan koleksi dan API yang mengharapkan objek.