www.久久精品_91高清视频在线_91lu在线观看_91av视频在线_91精品久久久久久久久_久久久久国产精品www

当前位置: 首页 / 技术干货 / 正文
民哥带你快速精通java泛型(四)

2022-10-21

泛型 list 表示 类型

  第四关 泛型之飞天遁地

  小伙伴们,泛型我们已经学到第四关了,是不是感觉泛型很强大啊!但是不要得意,泛型也有“软肋”,

好程序员

  泛型在使用时,有时并不能随意指定任意类型,也就是说,泛型在使用时具有类型限制,具体体现为泛型之飞天 ;

  就是泛型的上限,泛型之遁地 ; 就是泛型的下限。

  来吧,我们一起来看一下泛型的上限和下限。

  在泛型上限和下限的分析过程中,我们会看到 ?符号经常出现,在这里 ?表示通配符,表示任意类型,小伙伴们需要注意一下喔。

  1.泛型通配符

  切记: ?表示通配符,表示任意的类型。

  如下代码:

  ArrayList list1 ;

  ArrayListlist2 = new ArrayList();

  ArrayListlist3 = new ArrayList();

  list1 = list2;// ? 表示 String类型

  list1 = list3;// ? 表示 Integer类型

  在这里,小伙伴一定要注意: ?这个符号神通广大,可以用来表示任意的泛型类型。

  上述代码中创建了一个带?泛型list1。

  如果把创建带String泛型的list2赋值为list1, 那么此时?表示String 类型

  如果把创建带Integer泛型的list3赋值为list1, 那么此时?表示Integer类型

  讲到这里,小伙伴基本上明白了?符号的含义了,通常 ?会出现在泛型的上限和下限定义中使用中,我们接下来看看?这个通配符,

  在泛型的上限和下限过程怎么使用的,let`s go。

  2.泛型的上限

  定义的基本语法:定义基本语法:类名或者接口名,那么此时 ?表示T类型,或者T的子类型

  我们通过一段List接口的源码来分析一下泛型的上限,源码如下:

  public interface Listextends Collection{

  /**

  * 方法作用:将一个集合 添加到 List中,

  * 这时集合的类型 ? extends E ,这里? 表示是E的子类类型,?的上限不能超过E

  */

  boolean addAll(Collection c);

  ----

  }

  代码演示:

  Listlist = new ArrayList();//创建一个集合: 泛型为Number

  Listson1 = new ArrayList() ;

  Listson2 = new ArrayList() ;

  Liststr_list = new ArrayList();

  list.addAll(son1);// ? 表示 Number,上限是Number

  list.addAll(son2);// ? 表示Long,Long是Number的子类

  // list.addAll(str_list);//编译报错: 原因 String 和 Number 没有继承关系

  泛型的上限,就是在使用泛型时,不能超过extends后面定义的类型,所以大家在使用时,一定要注意类型的子、父级关系。

  3.泛型的下限

  定义基本语法: 类名或者接口名,那么此时 ?表示T类型,或者T的父类型

  刚刚看了泛型的上限,那么下限对于小伙伴来说就会简单很多了。

  我们还是通过List集合来分析泛型的下限。

  比如:

  List list = new ArrayList();//创建一个集合

  list = new ArrayList();// ? 表示Integer

  list = new ArrayList();// ? 表示Number: Number是Integer的父类

  list = new ArrayList();// ? 表示Object: Object是Integer的父类

  // list = new ArrayList();//编译报错: ? 表示String: String和Integer没有关系

  泛型的下限,就是在使用泛型时,必须高于super后面的定义的类型,所以大家在使用时,一定要注意类型的父、子级关系

  闯关练习

  请描述 ? 通配符 在泛型中的具体使用(多选)。

  A:在定义泛型的上限时: 可以使用?通配符 表示 泛型的子类

  B:在定义泛型的下限时: 可以使用?通配符 表示 泛型的父类

  C:在定义泛型时,可以不用 ?通配符

  D: 以上说法都不对

  答案:

  ABC

 

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
IT培训IT培训
在线咨询
IT培训IT培训
试听
IT培训IT培训
入学教程
IT培训IT培训
立即报名
IT培训

Copyright 2011-2023 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号

主站蜘蛛池模板: 在线va无码中文字幕 | 欧美69xxxxx | 国产12页| 欧美在线中文字幕 | 奇米影视777四色狠狠 | 一二区成人影院电影网 | 免费va国产高清大片在线 | 欧美福利视频一区在线 | 欧美日韩精品一区二区在线播放 | 久久综合九色综合网站 | 国产精品久久一区二区三区 | 欧美日韩亚洲综合久久久 | 免费无码高潮流白浆视频 | 精品在线不卡 | 日韩一级精品视频在线观看 | 欧美精品99毛片免费高清观看 | 真人祼交二十三式视频 | 久久国产精品波多野结衣av | 亚洲人成色77777在线观看 | 亚洲va欧美va天堂v国产综合 | 人人添人人澡人人澡人人人人 | 2021国产成人精品国产 | 成人高清视频在线观看大全 | 噜妇插内射精品 | 大陆免费三片在线观看 | 公粗挺进了我的密道在线播放贝壳 | 国产外围 | 久久窝窝国产精品午夜看15 | 久久久视| 午夜免费福利影院 | 国产精品视频国产永久视频 | 日本三级香港三级人妇99 | 亚洲欧美激情综合首页 | 少妇人妻精品一区二区三区 | 一区二区三区免费 | 男人靠女人的免费视频 | 99热久久只有精品6国产32 | 国产一区二区三区丶四区 | 漂亮人妻被黑人久久精品 | 亚洲综合图色国模40p | 成人黄色小视频在线观看 |