java:(String [])List.toArray()给出ClassCastException

以下代码(在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]以及其中包含字符串时,也会发生这种情况。知道为什么吗?


蓝山帝景
浏览 377回答 3
3回答

拉莫斯之舞

这是因为当您使用&nbsp;toArray()&nbsp;它返回一个Object [],该对象不能转换为String [](即使内容为String),这是因为toArray方法仅获得一个List&nbsp;并不是List<String>因为泛型仅是源代码,在运行时不可用,因此无法确定要创建哪种类型的数组。采用toArray(new String[v2.size()]);分配正确的数组类型(String []和正确的大小)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java