以下代碼(在android中運行)始終在第三行中給我ClassCastException:final String[] v1 = i18nCategory.translation.get(id);final ArrayList<String> v2 = new ArrayList<String>(Arrays.asList(v1));String[] v3 = (String[])v2.toArray();當(dāng)v2為Object [0]以及其中包含字符串時,也會發(fā)生這種情況。知道為什么嗎?
3 回答

拉莫斯之舞
TA貢獻1820條經(jīng)驗 獲得超10個贊
這是因為當(dāng)您使用
toArray()
它返回一個Object [],該對象不能轉(zhuǎn)換為String [](即使內(nèi)容為String),這是因為toArray方法僅獲得一個
List
并不是
List<String>
因為泛型僅是源代碼,在運行時不可用,因此無法確定要創(chuàng)建哪種類型的數(shù)組。
采用
toArray(new String[v2.size()]);
分配正確的數(shù)組類型(String []和正確的大?。?/p>
添加回答
舉報
0/150
提交
取消