2015-06-11 9 views
6

के बारे में उलझन में मैं निम्नलिखित कथन को पूरी तरह समझ नहीं पा रहा हूं।निम्नलिखित 'जेनेरिक' कोड

<T> T[] toArray(T[] a);

हालांकि, मैं समझता हूँ कि ऊपर बयान एक समारोह है कि स्वीकार करते हैं और T प्रकार की वस्तुओं की एक सरणी वापस जाने के लिए सक्षम होना चाहिए ... की घोषणा है मुझे समझ नहीं आता क्यों

1 - दो T के <>

2 से घिरा हुआ नहीं कर रहे हैं - वहाँ, 2 वापसी प्रकार दिखाई देते हैं के रूप में <T> & T[]

उत्तर

6

<T> रिटर्न प्रकार नहीं है। यह विधि द्वारा उपयोग किए जाने वाले सामान्य प्रकार पैरामीटर की घोषणा है। एक बार घोषित होने के बाद, इसे <> के बिना विधि हस्ताक्षर में उपयोग किया जा सकता है;

+2

नहीं है और यह 'के साथ घिरा हुआ है <>' कैसे इसका प्रारूप परिभाषित किया गया था कि क्योंकि। – biziclop

+0

तो क्या मेरे लिए पहले '' के बिना एक ही घोषणा लिखना संभव होगा और फिर बस अन्य 2 'टी' के आसपास' <> 'के साथ? तो उदाहरण के लिए मैं उपरोक्त को ' [] toArray ( [] ए) के साथ घोषित कर सकता हूं; इसके बजाय? – Grateful

+0

@ गेटफुल नंबर, यह उचित जावा वाक्यविन्यास नहीं होगा। यदि वह विधि क्लास का हिस्सा था जो जेनेरिक पैरामीटर टी ('पब्लिक क्लास कुछ क्लास ') घोषित करता है, तो आप विधि घोषणा से '' को छोड़ सकते हैं, लेकिन अन्य दो टी एक ही रहेंगे। – Eran

0

वापसी का प्रकार T[] है और <T> नहीं है। क्या इंगित करता है कि विधि एक सामान्य प्रकार है और कार्यान्वयन के अनुसार प्रकार का ख्याल रखना चाहिए।

दो टी < से घिरे नहीं हैं> इनपुट पैरामीटर प्रकार और वापसी प्रकार हैं। इस मामले में दोनों एक जैसा होना चाहिए।

1
  1. घोषित करता है कि विधि टी के अनुसार पैरामीटर द्वारा विधिबद्ध है, उदाहरण के लिए युक्त वर्ग के विपरीत। कोणीय कोष्ठक वाक्य रचना, नहीं चर नाम

  2. 1 में के रूप में का हिस्सा हैं, एक वापसी प्रकार

संबंधित मुद्दे