java - Can we create an Array of Generic class? -


संभव डुप्लिकेट:

मैं 10 तत्वों वाले स्टैक बनाना चाहता हूं, मैं जेनेरिक के साथ ऐसा करने की कोशिश कर रहा हूं मैं टाइप टी की एक स्टैक क्लास बनाकर शुरू किया, लेकिन जब मैं सामान्य प्रकार की सरणी को इन्स्तांत करने की कोशिश करता हूं तो मुझे संकलन त्रुटि मिलती है।

  सार्वजनिक वर्ग स्टैक & lt; T & gt; {निजी टी [] Stk = नया टी [10]; }   

क्या मैं यहाँ गलत कर रहा हूं?

आप ऐसा नहीं कर सकते कोड के बारे में कुछ गुप्त गोलियों का उपयोग किए बिना, और फिर भी आपको एक असुरक्षित कलाकार को अंत में करना होगा जो पहली जगह में सुरक्षित होने का प्रयास करने के पूरी तरह से पूरे कारण को नष्ट कर देता है।

इसका कारण यह है कि जावा में type erasure नामक कुछ है, कम्पाइलर सभी जेनेरिक सूचनाओं को फेंकता है और रनटाइम को पता नहीं है कि T क्या है

ऐसा करने का सबसे पसंदीदा तरीका यह है:

  @SuppressWarnings ("अनचेक") स्थिर & lt; T & gt; टी [] नए अर्रे (कक्षा & lt; T & gt; प्रकार, पूर्णांक लंबाई) {वापसी (टी []) java.lang.reflect.Array.newInstance (प्रकार, लंबाई); }   

यह सूची आवृत्ति के बारे में एक कोड toArray () पर सूची & lt; T & gt; > कार्यान्वयन हैक।

इस पर अधिक चर्चा के लिए

देखें।

Comments

Popular posts from this blog

mysql - BLOB/TEXT column 'value' used in key specification without a key length -

ruby on rails - Convert a Activerecord result with has_one associations into a single hash per record -

javascript - Read complete data from stream from onMessage -