"Isa pang cool na paksa."

"Patuloy lang ang surprises! Birthday ko ba?"

"Ngayon, sasabihin ko sa iyo ang tungkol sa mga generic. Ang mga generic ay mga uri na may parameter. Sa Java, hinahayaan ka ng mga container class na ipahiwatig ang uri ng kanilang mga panloob na bagay."

"Kapag nagdeklara kami ng isang generic na variable, ipinapahiwatig namin ang dalawang uri sa halip na isa: ang uri ng variable at ang uri ng data na iniimbak nito."

"Ang ArrayList ay isang magandang halimbawa. Kapag gumawa kami ng bagong ArrayList object, madaling ipahiwatig ang uri ng mga value na maiimbak sa loob ng listahang ito."

Code Paliwanag
ArrayList<String> list = new ArrayList<String>();
Lumikha ng variable ng ArrayList na tinatawag na list.
Magtalaga ng ArrayList object dito.
Ang listahang ito ay maaari lamang mag-imbak ng mga String object.
ArrayList list = new ArrayList();
Lumikha ng variable ng ArrayList na tinatawag na list.
Magtalaga ng ArrayList object dito. Ang listahang ito ay maaaring mag-imbak ng anumang mga halaga .
ArrayList<Integer> list = new ArrayList<Integer>();
Lumikha ng variable ng ArrayList na tinatawag na list.
Magtalaga ng ArrayList object dito.
Ang listahang ito ay maaari lamang mag-imbak Integerat intmagpahalaga.

"Mukhang kawili-wili. Lalo na ang bahagi tungkol sa pag-iimbak ng mga halaga ng anumang uri ."

"Mukhang iyon lang ang magandang bagay. Sa totoo lang, kung maglalagay tayo ng mga string sa isang ArrayList sa isang paraan at pagkatapos ay asahan na maglalaman ito ng mga numero sa ibang paraan, mag-crash ang program (magwawakas nang may error)."

"Nakita ko."

"Sa ngayon, hindi kami gagawa ng sarili naming mga klase na may mga parameter ng uri. Gagamitin lang namin ang mga umiiral na."

"Maaari bang maging isang uri ng parameter ang anumang klase, kahit isa na sinusulat ko?"

"Oo. Anumang uri maliban sa mga primitive na uri. Lahat ng uri ng mga parameter ay dapat magmana mula sa klase ng Bagay."

" Ibig mong sabihin hindi ako marunong sumulat ng ArrayList<int>? "

"Sa katunayan, hindi mo magagawa. Ngunit ang mga developer ng Java ay may nakasulat na mga klase ng wrapper para sa bawat isa sa mga primitive na uri. Ang mga klase na ito ay nagmamana ng Object . Ganito ang hitsura nito:"

Primitive na uri Klase Listahan
int Integer ArrayList< Integer >
doble Doble ArrayList< Doble >
boolean Boolean ArrayList< Boolean >
char karakter ArrayList< Character >
byte Byte ArrayList< Byte >

"Madali mong maitalaga ang mga primitive na klase at ang kanilang mga analog (mga klase ng wrapper) sa isa't isa:"

Mga halimbawa
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

"Great. I think I'll try to use ArrayList more often."