दिलचस्प पोस्ट
AngularJS में दृश्यों के बीच बदलते समय गुंजाइश के मॉडल को बनाए रखें git में नंगे साझा भंडार की अवधारणा एक स्क्रॉल करने योग्य फलक में उपयोग के लिए शुद्ध जावा एचटीएमएल दर्शक / रेंडरर सी में स्ट्रिंग को पूर्णांक कन्वर्ट करने के लिए कैसे? कैसे php में मेरी वेबसाइट की सभी कुकीज़ को हटाने के लिए Node.js वेब सर्वर के अंदर PHP स्क्रिप्ट निष्पादित करें जब मेरा ऐप पृष्ठभूमि पर जाता है तो मैं एंड्रॉइड कैसे स्क्रीनशॉट ले सकता हूं? अतिप्रवाह: अंत में छिपे हुए डॉट्स मैटर के लिए तर्क अवैध तरीके से फेंकना अपवाद जब कोई 'मेलिंग' विधि नहीं कहा जाता है सी ++ यूनिट परीक्षण चौखटे की तुलना अजगर का उपयोग करने के लिए स्ट्रिंग को कन्वर्ट करने के लिए JSON जावा जेनेरिक्स के साथ संस्थाओं के लिए कन्वर्टर्स लागू करें एक onclick फ़ंक्शन में स्ट्रिंग पैरामीटर पास करें जावा में वाष्पशील बनाम स्थिर गीथूब फ़ाइल आकार की सीमा 6/18/13 को बदल दी गई है अब धक्का नहीं लगा सकते

java: (स्ट्रिंग ) List.toArray () ClassCastException प्रदान करता है

निम्न कोड (एंड्रॉइड में चलाएं) मुझे हमेशा तीसरी पंक्ति में क्लास क्लास्ट अपेशन प्रदान करता है:

final String[] v1 = i18nCategory.translation.get(id); final ArrayList<String> v2 = new ArrayList<String>(Arrays.asList(v1)); String[] v3 = (String[])v2.toArray(); 

यह तब भी होता है जब v2 वस्तु [0] और जब भी इसमें स्ट्रिंग होते हैं कोई विचार क्यों?

वेब के समाधान से एकत्रित समाधान "java: (स्ट्रिंग ) List.toArray () ClassCastException प्रदान करता है"

इसका कारण यह है कि जब आप उपयोग करते हैं

  toArray() 

यह एक वस्तु [] देता है, जिसे स्ट्रिंग [] के लिए नहीं डाला जा सकता है (यहां तक ​​कि सामग्री स्ट्रिंग्स भी हैं) यह इसलिए है क्योंकि toArray विधि केवल एक हो जाता है

 List 

और नहीं

 List<String> 

जेनरिक्स केवल एक स्रोत कोड हैं, और रनटाइम पर उपलब्ध नहीं हैं और इसलिए यह निर्धारित नहीं कर सकता कि किस प्रकार के सरणी को बनाने के लिए।

उपयोग

 toArray(new String[v2.size()]); 

जो सही प्रकार की सरणी को आवंटित करता है (स्ट्रिंग [] और सही आकार का)

आप गलत करने के लिए toArray() का उपयोग कर रहे हैं

याद रखें कि जावा की जेनेरिक ज्यादातर वाक्यविन्यास चीनी हैं एक ArrayList वास्तव में नहीं जानता है कि उसके सभी तत्व स्ट्रिंग हैं

अपनी समस्या को ठीक करने के लिए, toArray(T[]) कॉल करें। आपके मामले में,

 String[] v3 = v2.toArray(new String[v2.size()]); 

ध्यान दें कि सामान्यीकृत फॉर्म toArray(T[]) T[] , इसलिए परिणाम को स्पष्ट रूप से डाली जाने की आवश्यकता नहीं है।