मैं देखता हूं कि कुछ समाधान प्रदान किए गए हैं, लेकिन कोई कारण नहीं है इसलिए मैं इस बारे में विस्तार से बताऊंगा क्योंकि मेरा मानना है कि यह जानना महत्वपूर्ण है कि आप क्या गलत कर रहे थे कि बस "कुछ" प्राप्त करने के लिए जो दिए गए उत्तरों से काम करता है।
सबसे पहले, देखते हैं कि ओरेकल को क्या कहना है
* <p>The returned array will be "safe" in that no references to it are
* maintained by this list. (In other words, this method must
* allocate a new array even if this list is backed by an array).
* The caller is thus free to modify the returned array.
यह महत्वपूर्ण नहीं लग सकता है, लेकिन जैसा कि आप देखेंगे कि यह है ... तो निम्नलिखित पंक्ति क्या विफल हो जाती है? सूची में सभी ऑब्जेक्ट स्ट्रिंग हैं लेकिन यह उन्हें परिवर्तित नहीं करता है, क्यों?
List<String> tList = new ArrayList<String>();
tList.add("4");
tList.add("5");
String tArray[] = (String[]) tList.toArray();
शायद, आप में से बहुत से लोग सोचते होंगे कि यह कोड समान है, लेकिन ऐसा नहीं है।
Object tSObjectArray[] = new String[2];
String tStringArray[] = (String[]) tSObjectArray;
जब वास्तव में लिखित कोड कुछ ऐसा कर रहा हो। जावदोक कह रहा है! यह एक नई सरणी पैदा करेगा, यह वस्तुओं का क्या होगा !!!
Object tSObjectArray[] = new Object[2];
String tStringArray[] = (String[]) tSObjectArray;
इसलिए tList.toArray एक ऑब्जेक्ट्स को त्वरित कर रहा है न कि स्ट्रिंग्स ...
इसलिए, इस धागे में प्राकृतिक समाधान का उल्लेख नहीं किया गया है, लेकिन यह है कि ओरेकल की सिफारिश निम्नलिखित है
String tArray[] = tList.toArray(new String[0]);
आशा है कि यह पर्याप्त स्पष्ट है।