泛型

  • 泛型:
    有泛型技术之前
    容器在取出对象时,需要用到对象的特有内容时,需要向下转型,但是对象的内容不一致,导致了向下转型发生了ClassCastException。
    为了运行时期不出现类型异常。可以在定义容器时,就明确容器中元素的具体类型。
    这样,编译器在编译时,就可以对集合中存储的对象类型进行检查。
    一旦发现类型不匹配,就编译失败。
好处:
1、将运行时期的问题转移到了便宜时期,可以更好的让程序员发现问题并解决问题。
2、避免了向下转型的麻烦

总结:泛型就是应用在编译时期的一项安全机制。
  • 泛型的擦除:编译器通过泛型对元素类型进行检查,只要检查通过,就会生成class文件,但在class文件中,就将泛型标识去掉了。

  • 泛型的表现:泛型技术在集合框架中应用的范围很大。
    容器在不明确操作元素的类型的情况下,对外提供了一个参数<>。

  • 泛型类
    在类定义时,就明确参数。由使用该类的调用者,来传递具体的类型。

  • 泛型方法
    静态方法无法访问类上定义的泛型。
    静态方法需要定义泛型,泛型只能定义在方法上。

  • 通配符 <?>表示接受所有类型
    限定
    泛型上限 <? extends E> 表示接受所有E的导出类和E类型,存入的时候用上限
    泛型下限 <? super E>表示接受所有E的父类型和E类型,取出的时候用下限

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第8章 泛型 通常情况的类和函数,我们只需要使用具体的类型即可:要么是基本类型,要么是自定义的类。但是在集合类的场...
    光剑书架上的书阅读 6,375评论 6 10
  • 本文大量参考Thinking in java(解析,填充)。 定义:多态算是一种泛化机制,解决了一部分可以应用于多...
    谷歌清洁工阅读 3,304评论 0 2
  • 我们知道,使用变量之前要定义,定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值。 假如我们现在...
    今晚打肉山阅读 4,624评论 0 1
  • 1. 泛型概述 泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,...
    JackChen1024阅读 3,411评论 0 3
  • 秋街从来没有一个节日是给情人的。这于我算是一件好事,不论遇见你之前,还是你走了以后。 你曾说过,我是个藏在角落里的...
    2020号阅读 4,019评论 25 21