数组不能强制类型转换的情况

一个运行时类型为父类的数组,如果其存放的都是子类的元素,也不能够将其转换为子类的数组。例如:

Object[] os = new Object[]{"hello", "world"};

String[] ss =(String[])os;

其实这和普通的向下强转没什么不同,例如一个父类引用的运行时类型就是父类,当然不能向下强转为子类,之所以我们认为其能强转,是被数组中存放的元素的类型迷惑了,其实跟容器中的元素类型没关系。

所以当os的运行时类型如果就是String[]的时候,自然就能强转了。

      Object[] os = new String[]{"ss", "ss"};

      String[] ss = (String[])os;

 

总结:数组的类型转换和其他类型没有什么不同,可以认为Object[] 是String[]的父类型,但是转换的关键是要看运行时类型,千万不要被数组中存放的元素给迷惑了,他们不起作用。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值