可以把List<String>传递给一个接受List<Object>参数的方法 不可以

可以把List传递给一个接受List参数的方法吗?

A.正确
B.错误

解析,错X

      原始类型可以引用一个参数化类型的对象,编译报告警告,例如,
      Collection c = new Vector<String>();//原来的方法接受一个集合参数,新的类型也要能传进去

      参数化类型不考虑类型参数的继承关系:

      Vector<String> v = new Vector<Object>(); //错误!///不写<Object>没错,写了就是明知故犯

      Vector<Object> v = new Vector<String>(); //也错误!

      编译器不允许创建泛型变量的数组。即在创建数组实例时,数组的元素不能使用参数化的类型,例如,下面语句有错误:

        Vector<Integer> vectorList[] = new Vector<Integer>[10];

      泛型中的类型参数严格说明集合中装载的数据类型是什么和可以加入什么类型的数据,注意:Collection<String>和Collection<Object>是两个没有转换关系的参数化的类型。

      假设Vector<String> v = new Vector<Object>();可以的话,那么以后从v中取出的对象当作String用,而v实际指向的对象中可以加入任意的类型对象;假设Vector<Object> v = new Vector<String>();可以的话,那么以后可以向v中加入任意的类型对象,而v实际指向的集合中只能装String类型的对象。肯定会报错了
  • 3
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:像素格子 设计师:CSDN官方博客 返回首页
评论

打赏作者

kkkk测试

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值