अंतर यह है कि पहले में, हम निर्दिष्ट करते हैं कि कॉलर को ऑब्जेक्ट इंस्टेंस (किसी भी वर्ग) को पास करना होगा, और यह एक और ऑब्जेक्ट (किसी भी वर्ग, एक ही प्रकार की जरूरी नहीं) वापस ले जाएगा।
दूसरे में, लौटाया गया प्रकार उसी प्रकार के जैसा होगा जब कक्षा परिभाषित की गई थी।
Example ex = new Example<Integer>();
यहां हम निर्दिष्ट करते हैं कि टी किस प्रकार होगा जो हमें कक्षा या विधि पर अधिक बाधाओं को लागू करने की अनुमति देता है। उदाहरण के लिए हम LinkedList<Integer>
या LinkedList<Example>
को तुरंत चालू कर सकते हैं और हम जानते हैं कि जब हम इन तरीकों में से किसी एक को कॉल करते हैं, तो हम एक इंटीजर या उदाहरण उदाहरण वापस प्राप्त करेंगे।
यहां मुख्य लक्ष्य यह है कि कॉलिंग कोड यह निर्दिष्ट करने के लिए प्रकार-कास्टिंग पर भरोसा करने के बजाय, कक्षा किस प्रकार की वस्तुओं को संचालित करेगा, निर्दिष्ट कर सकता है।
ओरेकल से Java Generics * देखें।
* अद्यतन लिंक।