Autoboxing (tidak dapat diubah) - 1

"Hai, Amigo!"

"Hari ini saya akan menceritakan tentang autoboxing . AutoBoxing artinya secara otomatis memasukkan sesuatu ke dalam kotak."

"Anda akan ingat bahwa Java memiliki tipe yang mewarisi kelas Object, serta tipe primitif. Tapi ternyata hal-hal yang mudah karena koleksi dan generik hanya bekerja dengan tipe yang mewarisi Object."

"Kemudian keputusan dibuat untuk membuat padanan non-primitif dari setiap tipe primitif."

Tipe primitif Mitra non-primitif
byte Byte
pendek Pendek
int Bilangan bulat
panjang Panjang
mengambang Mengambang
dobel Dobel
boolean Boolean
arang Karakter
ruang kosong Ruang kosong

"Tapi sangat merepotkan untuk mengonversi di antara tipe-tipe ini sepanjang waktu:"

int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();

"Terutama saat bekerja langsung dengan koleksi:"

Contoh
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
 list.add( new Integer(i));
}

"Itulah sebabnya pencipta Java menemukan «autoboxing» dari tipe primitif mereka dan 'unboxing' ke rekan non-primitif mereka."

"Begini cara kerjanya:

Apa yang kamu lihat Apa yang sebenarnya terjadi
int x = 3;
Integer y = x + 1;
int x = 3;
Integer y = Integer.valueOf(x + 1);
int z = y;
int z = y.intValue();
Boolean b = Boolean.FALSE;
boolean a = b;
Boolean b = Boolean.FALSE;
boolean a = b.booleanValue();
Integer x = null;
int y = x;
Integer x = null; int y = x.intValue(); //Throws an exception

"Semuanya sederhana. Anda dapat menetapkan tipe int dan Integer satu sama lain, dan kompiler menangani yang lainnya."

"Itu sangat nyaman."

"Ya. Tapi ada nuansa yang akan saya bicarakan nanti."