龙猫12138
2017-09-09 02:01
采纳率: 62.9%
浏览 2.5k
已采纳

java,我使用泛型数组的时候提示unchecked cast,下有图片代码

图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 鼠小 2017-09-09 02:35
    已采纳

    【Array.newInstance()】这个方法返回的是Object,,向上转型很自然,向下转型就需要强转
    由于这个后面传入的是class,也就是通过 class来创建实例(这个是运行时才能知道类型的)

    所以说程序给报个异常也是理所应当,,

    【解决方法】题主可以不适用【Array.newInstance()】
    自己写一个创建实例的方法,,难度不是很大吧??

    有问题还可以追问。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 微风和浪 2017-09-09 02:18

    代码我不用看,就单单你最后的问题,一个String类型把它转成Object类型之后,能直接转换成int类型吗?

    评论
    解决 无用
    打赏 举报
  • 珠穆朗玛小王子 2017-09-11 03:11

    泛型的作用:检查操作的类型是否与希望的类型相匹配,帮助开发者审查操作的失误。

    这里以List举例:泛型String表示的是List中只能加入String类型,否则就会报错。这里要注意,泛型的作用范围是List的内部的内容,而不是List本身。

    你的强转会报错是因为你是对List进行了强转,泛型的作用已经超出了他的范围,所以这个会报错。

    如果你想取消这个错误你可以自己写一个for循环,依次把List中的对象放入到数组中。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题