前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题1:什么是类型通配符List<?>

面试题1:什么是类型通配符List<?>

作者头像
爪哇缪斯
发布2023-05-09 21:32:16
1310
发布2023-05-09 21:32:16
举报
文章被收录于专栏:爪哇缪斯爪哇缪斯
  • 为什么需要类型通配符? 我们来看一个需求:方法接收一个集合参数,遍历集合并把集合元素打印出来,怎么办?
  • 按照我们没有学习泛型之前,我们可能会这样做

上面的代码是正确的,但是没有确定集合元素的类型,这样是不优雅的。

  • 那我们学习了泛型了,现在要怎么做呢?有的人可能会这样做:

这样做语法是没毛病的,但是这里十分值得注意的是:该test()方法只能遍历装载着Object的集合!!!

  • 强调:泛型中的<Object>并不是像以前Object那样有继承关系的,也就是说List<Object>List<String>是毫无关系的!!!!
  • 那现在咋办?我们是不清楚List集合装载的元素是什么类型的,List<Objcet>这样是行不通的。于是Java泛型提供了类型通配符 ?,代码改成这样:
  • ?号通配符表示可以匹配任意类型,任意的Java类都可以匹配。<?>代表任意java类型,只有在不关心数据的具体类型下才使用通配符表示,但在一些情况下,需要将<?>传入的数据进行强转,但这样不如直接传入<T>。
  • 那List<T>和List<?>有什么区别?

【解释】List<?>是只读类型的,不能进行增加、修改操作;可以用于遍历和删除(remove)。而List<T>是可以增删改查,没有限制的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爪哇缪斯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档