Java泛型(黑马程序员武汉中心)

Java泛型

一、概述

1、泛型含义

Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。
编译器提前规定好的类、接口、方法等需要的数据类型。

2、泛型好处

A.提前检查(运行时可能出现的类型转换异常,提前到编译时是否通过)
B.简洁代码(不需要手动向下转型,快捷键直接提示出来类型)

3、泛型分类

A.泛型方法
B.泛型类
C.泛型接口
D.泛型通配符(泛型上限和下限)

二、常见的泛型案例

1、泛型方法

A.定义时

修饰符 <泛型> 返回值  方法名称 (参数){ 方法体; return 返回值; }  //定义未知不具体类型

B.使用时(调用方法)

 具体返回值类型  返回值 = 方法名称(具体参数);  //使用已知具体类型

2、泛型类

A.定义时

修饰符 class 类名称<泛型>{ }   //定义未知不具体类型

B.使用时(创建对象)

类名称<具体类型> 对象名称 = new 类名称<具体类型>(); //使用已知具体类型

3、泛型接口

A.定义时

修饰符 interface 接口名称<泛型>{ }

B.使用时 (实现类或者创建实现类对象时候)

第一种:修饰符 class 类名称<具体类型> implements 接口名称{ }   //使用已知具体类型
第二种:类名称<具体类型> 对象名称 = new 类名称<具体类型>(); //使用已知具体类型

4、泛型通配符

A.含义:

不知道使用什么数据类型的时候,泛型可以使用 ?

B.格式:

Collection<?>  可以传递各种泛型类型的对象 
例如: 这些都可以传递 Collection<Object> Collection<String> Collection<Integer> 

C.高级使用: (Number是Integer的父类)

Collection<? extends Number>    只能接收 Number类型以及子类类型. (专业术语"泛型的上限")
Collection<? super Number>      只能接收 Number类型以及父类类型. (专业术语"泛型的下限")     
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,242评论 6 13
  • 前言 Java 5 添加了泛型,提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质...
    czwbig阅读 511评论 0 0
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,072评论 0 13
  • 人在旅途:相爱不是花前月下,相爱不是甜言蜜语,相爱不是恩爱缠绵,相爱不是海誓山盟,相爱是你老了陪伴着你,...
    改变天地的虫阅读 765评论 17 18