"సరే, చివరకు - జెనరిక్స్‌పై మరో చిన్న పాఠం."

"టైప్ ఎరేజర్‌ని ఎలా పొందాలో ఇప్పుడు నేను మీకు చెప్పబోతున్నాను."

"ఆహ్. అది నేను తెలుసుకోవాలనుకుంటున్నాను."

"మీకు బహుశా ఇప్పటికే తెలిసినట్లుగా, జావా ఒక క్లాస్ రకాన్ని కలిగి ఉంది, ఇది వస్తువు యొక్క తరగతికి సూచనను నిల్వ చేయడానికి ఉపయోగించబడుతుంది. "ఇక్కడ కొన్ని ఉదాహరణలు ఉన్నాయి:"

ఉదాహరణలు
Class clazz = Integer.class;
Class clazz = String.class;
Class clazz = "abc".getClass();

"ఆహ్."

"కానీ మీకు బహుశా తెలియని విషయం ఏమిటంటే, క్లాస్ అనే జెనరిక్ క్లాస్ కూడా ఉంది. మరియు జెనెరిక్ క్లాస్ వేరియబుల్స్ టైప్ ఆర్గ్యుమెంట్ ద్వారా నిర్ణయించబడిన రకానికి సంబంధించిన సూచనలను మాత్రమే నిల్వ చేయగలవు.  ఇక్కడ కొన్ని ఉదాహరణలు ఉన్నాయి:"

ఉదాహరణలు
Class<Integer> clazz1 = Integer.class; // Everything works well
Class<String> clazz2 = Integer.class; // Compilation error
Class<String> clazz1 = String.class; // Everything works well
Class<String> clazz2 = int.class; // Compilation error
Class<? extends String> clazz1 = "abc".getClass(); // Everything works well
Class<Object> clazz2 = "abc".getClass(); // Compilation error

"అలా ఎందుకు పని చేస్తుంది?"

"సరే, పూర్ణాంకం (అంటే Integer.class) కోసం క్లాస్ ఫీల్డ్ విలువ నిజానికి Class<Integer> వస్తువు."

"అయితే మనం కొనసాగిద్దాం."

"క్లాస్<T> - సాధారణమైనది మరియు ఈ రకమైన వేరియబుల్ టైప్ T విలువను మాత్రమే కలిగి ఉండగలదనే వాస్తవాన్ని సద్వినియోగం చేసుకుంటూ, మీరు వాటిని ఇలా వివేక మార్గంలో ఉంచవచ్చు:"

ఉదాహరణ
class Zoo<T>
{
 Class<T> clazz;
 ArrayList<T> animals = new ArrayList<T>

 Zoo(Class<T> clazz)
 {
  this.clazz = clazz;
 }

 public T createNewAnimal()
 {
  T animal = clazz.newInstance();
  animals.add(animal);
  return animal
 }
}
వాడుక
Zoo<Tiger> zoo = new Zoo<Tiger>(Tiger.class); // This is where we pass the type!
Tiger tiger = zoo.createNewAnimal();

"ఇది చాలా గమ్మత్తైన యుక్తి కాదు - మేము కోరుకున్న రకానికి సూచనగా పాస్ చేస్తున్నాము. కానీ, క్లాస్<T>కి బదులుగా క్లాస్‌ని ఉపయోగిస్తే, ఎవరైనా అనుకోకుండా రెండు విభిన్న రకాలను ఉత్తీర్ణులు కావచ్చు: ఒకటి T వాదనగా , మరియు మరొకటి కన్స్ట్రక్టర్‌కి."

"ఆహ్. నాకు అర్థమైంది. అతీంద్రియంగా ఏమీ జరగలేదు, కానీ భయంకరమైనది ఏమీ లేదు. రకానికి సంబంధించి ఒక సూచన ఉంది మరియు మీరు దానిని ఉపయోగించవచ్చు. ఇది పని చేస్తుంది మరియు అది నాకు సరిపోతుంది."

"అబ్బాయి మనిషి అవుతాడు! 'ఇది పని చేస్తుంది మరియు అది నాకు సరిపోతుంది' అనేది తరచుగా ఉత్తమ ఎంపిక."

"ఇప్పుడు జావాలో చాలా విషయాలు తిరిగి చేయవచ్చు, కానీ మేము పాత కోడ్‌తో అనుకూలతను కొనసాగించాలి."

"పదివేల ప్రసిద్ధ మెరుగుపెట్టిన లైబ్రరీలు జావాకు అత్యంత శక్తివంతమైన వాదనగా ఉన్నాయి. అందువల్ల, జావా వెనుకబడిన అనుకూలతను కొనసాగించడం ద్వారా అత్యంత ప్రజాదరణ పొందిన భాషగా మిగిలిపోయింది, కనుక ఇది రాడికల్ ఆవిష్కరణలను ప్రవేశపెట్టలేదు."

"సరే, నేను బ్లాక్‌జాక్‌తో నా స్వంత జావాను నిర్మించబోతున్నాను మరియు..."

"సరే, నేను ఇప్పటికే రోజు నుండి అలసిపోయాను. తదుపరి సమయం వరకు."

"వీడ్కోలు, రిషీ, ఇంత ఆసక్తికరమైన పాఠం అందించినందుకు ధన్యవాదాలు."