【发布时间】:2014-01-24 01:00:51
【问题描述】:
我不明白为什么这给了我一个类转换异常:
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);
并且每次都创建一个新数组?
【问题讨论】:
-
您可以在数组列表上循环并将字符串推送到您的数组中并返回它