为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

蓝山帝景 2019-10-09 15:19:49
以下代码(在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]以及其中包含字符串时,也会发生这种情况。知道为什么吗?
查看完整描述

3 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

这是因为当您使用


 toArray() 

它返回一个Object [],该对象不能转换为String [](即使内容为String),这是因为toArray方法仅获得一个


List 

并不是


List<String>

因为泛型仅是源代码,在运行时不可用,因此无法确定要创建哪种类型的数组。


采用


toArray(new String[v2.size()]);

分配正确的数组类型(String []和正确的大小)

查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 376 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信