আমি দেখতে পাচ্ছি যে কিছু সমাধান সরবরাহ করা হয়েছে তবে কোনও কারণ নয় তাই আমি এটিকে বিস্তারিতভাবে ব্যাখ্যা করব কারণ আমার বিশ্বাস যে আপনি কী ভুল করছেন তা জানা গুরুত্বপূর্ণ যে কেবলমাত্র দেওয়া উত্তরগুলি থেকে "কিছু" পেতে পারে।
প্রথমে দেখা যাক ওরাকল কী বলছেন
* <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]);
আশা করি এটি যথেষ্ট পরিষ্কার।