खैर, अंतर यह है कि यदि आप अपनी कक्षा जेनेरिक सामान्य प्रकार में प्रत्येक विधि को बनाने का प्रयास करते हैं तो आप अपने पहले इस्तेमाल में उपयोग करेंगे जेनरिक मोड एक ही प्रकार का हो सकता है या नहीं। मेरा मतलब क्या है।
public <T> void firstGenMethod(...){
}
public <T> void secondGenMethod(...){
}
टेस्ट:
SomeClass ref = new SomeClass();
ref.firstGenMethod("string");
ref.secondGenMethod(123);//legal as this generic type is not related to the generic type which is used by firstGenMethod
ऊपर मामले में कोई gaurentee कि दोनों तरीकों में एक ही सामान्य type.It है आप उन्हें कैसे आह्वान पर निर्भर करता है है। यदि आप कक्षा सामान्य बनाते हैं, तो उस वर्ग के अंदर सभी विधियों पर प्रकार लागू होता है।
class Test<T>{
public void firstGenMethod(T t){
}
public void secondGenMethod(T t){
}
}
टेस्ट:
Test<String> testingString = new Test<>();
testingString.firstGenMethod("abc");
testingString.firstGenMethod(123);// invalid as your Test class only expects String in this case
आप आम तौर पर अपनी कक्षा सामान्य जहां एक ही प्रकार पर कार्रवाई करने के लिए उस वर्ग के पूरे व्यवहार (विधि) चाहते हैं बनाने चाहते हैं। सर्वोत्तम उदाहरण में जावा संग्रह फ्रेमवर्क
तो क्या आपके पास सामान्य प्रकार की कक्षा में चर हो सकते हैं? – Dukeling
एक विधि एक सदस्य है और यह पूरी कक्षा जेनेरिक बनाने के बिना सामान्य हो सकती है। केवल दूसरी बात मैं के बारे में सोच सकता है सामान्य – user1420042
उदाहरण चर मुझे लगता है कि इस विवरण के बिना downvoted नहीं किया जाना चाहिए बनाने के लिए सक्षम किया जा रहा है। जबकि हम में से ज्यादातर लोग जावा का उपयोग कुछ समय के लिए कर सकते हैं, यह सोच सकता है कि यह स्पष्ट है, वहां ऐसे लोग हैं जो अभी सीखना शुरू कर चुके हैं, और मुझे लगता है कि यह एक वैध सवाल है। – Axel