java - how could I initialize a generic array -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 27 जवाब

    मुझे एक दिया गया है कंकाल वर्ग "ऑर्डरसीट" जो एक चर "[सेट]" का कार्यान्वयन करता है वह चर टी [] वस्तुओं में से एक है, सामान्य है और मुझे लगता है कि इसे 5 तत्वों की एक सरणी के रूप में प्रारंभ करना है, लेकिन कुछ पढ़ने के बाद, मैंने सीखा है कि आप नहीं कर सकते एक सामान्य सरणी को इनिशियलाइज़ करें, यदि ऐसा है तो मैं कैसे सरणी को इनिशियलाइज़ कर सकता हूं?

    यहां वर्ग है

      सार्वजनिक वर्ग OrderSet & lt; T Comparable & gt; लागू सेट & lt; T & gt; {निजी टी [] आइटम; निजी इंट साइज़; सार्वजनिक आदेशसेट () {आइटम = (टी []) नया सेट [5]; } @ ओवरराइड सार्वजनिक शून्य जोड़ें (टी एस) {} @ ओवरराइड सार्वजनिक शून्य शो () {}}    

    आप इस तरह से कुछ का उपयोग कर सकते हैं T [] आइटम = (टी []) नया ऑब्जेक्ट [आकार]; लेकिन यह ऑब्जेक्ट सरणी पैदा करेगा ताकि आप वहां कोई सम्मिलित कर सकें कच्चे प्रकार संदर्भ के माध्यम से ऑब्जेक्ट यह अच्छा होगा कि आपके पास टी प्रकार या कक्षा का कुछ उदाहरण है, तो आप इसका इस्तेमाल उदाहरण के लिए टी प्रकार की सामान्य सरणी बनाने के लिए कर सकते हैं।

      सार्वजनिक स्थिर & lt; T & gt; टी [] बनाएँअरेरे (कक्षा & lt; T & gt; प्रकार, पूर्णांक आकार) {वापसी (टी []) Array.newInstance (प्रकार, आकार); }   


    संपादित करें - उदाहरणों में से एक में ऑब्जेक्ट [] सरणी में सभी प्रकार की ऑब्जेक्ट कैसे डालें, जेनेरिक प्रकार डेटा को स्टोर करने के लिए उपयोग किया जाता है < पूर्व> वर्ग GenericArrayTest & lt; T & gt; {टी [] array1; // यह सरणी (टी []] नई वस्तु [आकार] द्वारा बनाई जाएगी; वस्तु [] सरणी 2; // यह नया ऑब्जेक्ट [आकार] टी [] सरणी 3 द्वारा बनाया जाएगा; // और यह (टी []) Array.newInstance (प्रकार, आकार); जेनेरिकअरेरेस्ट (कक्षा & lt; T & gt; प्रकार, पूर्णांक आकार) {array1 = (टी []) नई वस्तु [आकार]; Array2 = नया ऑब्जेक्ट [आकार]; सरणी 3 = (टी []) सरणी.नईअंतर (प्रकार, आकार); } शून्य डाल 1 (टी डेटा, इंट इंडेक्स) {array1 [अनुक्रमणिका] = डेटा; } शून्य put2 (टी डेटा, इंट इंडेक्स) {array2 [अनुक्रमणिका] = डेटा; } शून्य डाल 3 (टी डेटा, इंट इंडेक्स) {सरणी 3 [अनुक्रमणिका] = डेटा; } टी मिल 1 (इंट इंडेक्स) {रिटर्न सरणी 1 [इंडेक्स]; } टी get2 (इंट इंडेक्स) {रिटर्न (टी) सरणी 2 [इंडेक्स]; } टी मिल 3 (इंट इंडेक्स) {रिटर्न सरणी 3 [इंडेक्स]; } शून्य शोअरेरेरो (इंट इंडेक्स) {System.out.println (get1 (इंडेक्स) + "+ + 2 (इंडेक्स) +" "+ 3 (सूचकांक)); } // परीक्षण सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {// हम GenericArrayTest डाल देंगे & lt; Integer & gt; K = नया GenericArrayTest & lt; पूर्णांक & gt; (पूर्णांक। वर्ग, 10); K.put1 (666, 0); K.put2 (666, 0); K.put3 (666, 0); k.showArraysRow (0); // मैं रॉ प्रकार संदर्भ बनाने - कोई सामान्य नियंत्रण अब और GenericArrayTest k2 = k; K2.put1 ("data1", 0); K2.put2 ("data2", 0); // k2.put3 ("डेटा 3", 0); // & lt; - यह ArrayStoreException फेंकता है - गलत डेटा प्रकार k2.showArraysRow (0); }}

    बाहर:

      666 666 666 डेटा 1 डेटा 2 666    

Comments