我不明白爲什麼這是給我一個類轉換異常:的ArrayList的toArray方法類轉換異常
List<String> names = new ArrayList<String>();
for (ApplicationInfo app : apps) {
names.add("" + app.loadLabel(packageManager));
}
return (String[]) names.toArray();
日誌是:
01-23 16:56:18.746: E/AndroidRuntime(4027): Caused by: java.lang.ClassCastException: java.lang.Object[] cannot be cast to java.lang.String[]
但我明確names
到列表String
而不是Object
**編輯:
哦,等等,好吧,我在API中看到它返回對象數組。我怎麼能這樣做,沒有做:
List<String> names = new ArrayList<String>();
for (ApplicationInfo app : apps) {
names.add("" + app.loadLabel(packageManager));
}
String[] list = new String[names.size()];
return names.toArray(list);
並每次創建一個新的數組?
你可以在Array列表上循環並將數組中的字符串壓入並返回它 –