छिपा है:जावा जेनरिक - प्रकार पैरामीटर स्ट्रिंग मेरी इंटरफ़ेस में प्रकार स्ट्रिंग
public <T> Result query(T query)
मेरी 1 उपवर्ग में:
public <HashMap> Result query(HashMap queryMap)
मेरी 2nd उपवर्ग में:
public <String> Result query(String queryStr)
पहले सबक्लास में कोई संकलन चेतावनी नहीं है जबकि 2 उप-वर्ग में है: प्रकार पैरामीटर स्ट्रिंग प्रकार छुपा रहा है स्ट्रिंग? मैं समझता हूं कि मेरा पैरामीटर जेनेरिक प्रकार से छिपा हुआ है। लेकिन मैं समझना चाहता हूं कि वास्तव में क्या हुआ?
एक शैली के मुद्दे के रूप में, मैं एक प्रकार पैरामीटर 'स्ट्रिंग' - या अन्य सामान्य रूप से उपयोग किए जाने वाले जावा क्लास नामों के नामकरण के खिलाफ अनुशंसा करता हूं। बाद में कोड की जांच करने वाले किसी के लिए यह संभावित रूप से भ्रमित हो जाएगा। अगर मुझे जावा में 'स्ट्रिंग' दिखाई देता है, तो मुझे लगता है कि यह 'java.lang.String' है। – oconnor0
ओह, बिल्कुल। मुझे संदेह है कि मैं जो उदाहरण देता हूं वह ओपी _मेन्ट_ करने के लिए है, हालांकि। –
आप [यह एस एंड ओ प्रश्न] (http://stackoverflow.com/questions/10011758/troubleshooting-the-type-parameter-t-is-hiding-the-type-t-warning) पर भी एक नज़र डालना चाहते हैं । –