"Başka bir harika konu."

"Sürprizler gelmeye devam ediyor! Doğum günüm mü?"

"Bugün size jeneriklerden bahsedeceğim. Jenerikler, bir parametresi olan tiplerdir. Java'da, konteyner sınıfları, iç nesnelerinin tipini belirtmenize izin verir."

"Genel bir değişken bildirdiğimizde, bir yerine iki tür belirtiriz: değişken türü ve depoladığı verilerin türü."

"ArrayList iyi bir örnek. Yeni bir ArrayList nesnesi oluşturduğumuzda, bu listede depolanacak değerlerin türünü belirtmek uygundur."

kod Açıklama
ArrayList<String> list = new ArrayList<String>();
adlı bir ArrayList değişkeni oluşturun list.
Ona bir ArrayList nesnesi atayın. Bu liste yalnızca String nesnelerini
saklayabilir .
ArrayList list = new ArrayList();
adlı bir ArrayList değişkeni oluşturun list.
Ona bir ArrayList nesnesi atayın. Bu liste herhangi bir değeri saklayabilir .
ArrayList<Integer> list = new ArrayList<Integer>();
adlı bir ArrayList değişkeni oluşturun list.
Ona bir ArrayList nesnesi atayın. Bu liste sadece ve değerleri
saklayabilir .Integerint

"Kulağa çok ilginç geliyor. Özellikle de herhangi bir türden değerlerin saklanmasıyla ilgili kısım ."

"Yalnızca bu iyi bir şey gibi görünüyor. Gerçekte, bir yöntemde bir ArrayList'e dizeler koyarsak ve ardından başka bir yöntemde sayıları içermesini beklersek, program çöker (bir hatayla sonlanır)."

"Anlıyorum."

"Şimdilik, tür parametreleriyle kendi sınıflarımızı oluşturmayacağız . Yalnızca mevcut olanları kullanacağız."

"Herhangi bir sınıf, yazdığım bir sınıf bile bir tür parametresi olabilir mi?"

"Evet. İlkel türler dışında herhangi bir tür. Tüm tür parametreleri Object sınıfından miras almalıdır."

" ArrayList<int> yazamayacağımı mı söylüyorsun ? "

"Aslında bunu yapamazsınız. Ancak Java geliştiricileri, ilkel türlerin her biri için sarmalayıcı sınıflar yazdılar. Bu sınıflar, Object öğesini miras alır . Şu şekilde görünür:"

ilkel tip Sınıf Liste
int tamsayı Dizi Listesi< Tamsayı >
çift Çift Dizi Listesi< Çift >
mantıksal boole Dizi Listesi< Boolean >
karakter Karakter Dizi Listesi< Karakter >
bayt Bayt Dizi Listesi< Bayt >

"İlkel sınıfları ve benzerlerini (sarmalayıcı sınıfları) kolayca birbirine atayabilirsiniz:"

örnekler
int a = 5;
Integer b = a;
int c = b;
Character c = 'c';  //the literal c is a char
char d = c;
Byte b = (byte) 77;  // The literal 77 is an int
Boolean isOk = true;  // the literal true is a boolean
Double d = 1.0d;  // The literal 1.0d is a double

"Harika. Sanırım ArrayList'i daha sık kullanmaya çalışacağım."