/ / जावा जेनरिक रिटर्न टाइप सिंटेक्स [डुप्लिकेट] - जावा, सूची, जेनेरिक

जावा जेनरिक रिटर्न टाइप सिंटेक्स [डुप्लिकेट] - जावा, सूची, जेनेरिक

मैं अज्ञात प्रकार की वस्तुओं की सूची लौटने के लिए विधि को कोड करने का तरीका सीखने की कोशिश कर रहा हूं। मैं इस उदाहरण में आया हूं:

public <T> List<T> list(Class<T> c, List<Object> objectList){
List<T> list = new ArrayList<>();
for (Object o : objectList){
T t = c.cast(o);
list.add(t);
}
return list;
}

वापसी का प्रकार क्यों है <T> List<T> बस के बजाय List<T>?

उत्तर:

जवाब के लिए 3 № 1

ऐसा इसलिए है क्योंकि आपका list विधि के अपने सामान्य प्रकार का तर्क है। <T> इस प्रकार का परिचय देता है:

<T> List<T> list(Class<T> c, List<Object> objectList)
^       ^             ^
|       +-------------+----- Use generic type
+--------------------------- Introduce generic type argument for use in the method

प्रारंभिक <T> जरूरी नहीं है जब जेनेरिक तरीके उनके संलग्न वर्ग के प्रकार तर्क का उपयोग करें।


जवाब के लिए 4 № 2

अर्थात् नहीं वापसी का प्रकार:

public <T> List<T>

इसका मतलब है: टी एक सामान्य पैरामीटर है केवल इस विधि के लिए!

आप ए पर टाइप पैरामीटर रख सकते हैं वर्ग या बस तरीकों पर। आप देखते हैं - जब आपके सभी अन्य तरीकों को सामान्य प्रकार की आवश्यकता होती है ... तो आप इसे इस तरह की एक विधि के लिए उपयोग कर सकते हैं।

देख यहाँ आगे पढ़ने के लिए!


जवाब के लिए 0 № 3

<T> एक वापसी प्रकार नहीं है। यह उस सामान्य विधि के प्रकार को परिभाषित करता है। पैरामीटर सूची में एक नज़र डालें, आपको एक सामान्य टाइपइनो के साथ एक क्लास भी मिलती है


जवाब के लिए 0 № 4

वापसी प्रकार आईएस है List<T>.

<T> "टेम्पलेट" / सामान्य घोषणा है: जहां आप अपने सामान्य प्रकार घोषित करते हैं। मुझे नहीं लगता कि यह परिणाम प्रकार का वास्तविक हिस्सा है (इस पर गलत हो सकता है)।