Otomatik kutulama (değişmezler) - 1

"Merhaba, Amigo!"

"Bugün otomatik kutulamadan bahsedeceğim . Otomatik Kutulama , bir şeyi otomatik olarak bir kutuya koymak demektir."

"Java'nın ilkel türlerin yanı sıra Object sınıfını miras alan türlere de sahip olduğunu hatırlayacaksınız. Ancak koleksiyonlar ve jenerikler gibi uygun şeylerin yalnızca Object'i miras alan türlerle çalıştığı ortaya çıktı."

"Sonra, her ilkel türün ilkel olmayan bir karşılığının yapılmasına karar verildi."

ilkel tip İlkel olmayan muadili
bayt Bayt
kısa Kısa
int tamsayı
uzun Uzun
batmadan yüzmek Batmadan yüzmek
çift Çift
mantıksal boole
karakter Karakter
geçersiz Geçersiz

"Ancak her zaman bu türler arasında geçiş yapmak çok zahmetli:"

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

"Özellikle doğrudan koleksiyonlarla çalışırken:"

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

"Bu nedenle Java'nın yaratıcıları, ilkel türlerin "otomatik kutulanmasını" ve ilkel olmayan benzerlerinin "kutudan çıkarılmasını" icat etti."

"Şu şekilde çalışır:

Ne görüyorsun gerçekten ne oluyor
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

"Çok basit. Birbirinize int ve Integer türleri atayabilirsiniz ve geri kalan her şeyi derleyici halleder."

"Bu çok uygun."

"Evet. Ama daha sonra bahsedeceğim nüanslar var."