以下代码(在android中运行)始终在第三行中给我ClassCastException:
final String[] v1 = i18nCategory.translation.get(id);
final ArrayList<String> v2 = new ArrayList<String>(Arrays.asList(v1));
String[] v3 = (String[])v2.toArray();
当v2为Object [0]以及其中包含字符串时,也会发生这种情况。知道为什么吗?
这是因为当您使用
toArray()
它返回一个Object [],该对象不能转换为String [](即使内容是String),这是因为toArray方法仅获得一个
List
并不是
List<String>
因为泛型仅是源代码,在运行时不可用,因此无法确定要创建哪种类型的数组。
用
toArray(new String[v2.size()]);
分配正确类型的数组(String []和正确大小)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句