jAVA泛型

JAVA泛型

一、什么是泛型

  1. 概念:Java泛(generics)是JDK5中引入的一个新特性,泛型提供了编译时类的安全监测机制,该机制允许我们在编译时检测到非法的泛型数据结构泛型的本质是参数化类型,也就是所操作的数据类型被指定为一个参数。
  2. 意义:类型安全, 消除强制类型转换。

二、泛型类、接口

泛型类(接口)

  • 定义语法:
class  类型名 <泛型标志,泛型标识,...> {
   private 泛型标识  变量名;
   ...
}
  • 常用泛型标识:T 、 E 、 K 、 V、 S ? …
  • 使用语法:
类名<具体的数据类型> 变量名  = new 类名<具体的数据类型>();

JDK7以后,后面的<具体数据类型>可以省略.

  • 注意事项:

  • 泛型类,如果没有指定具体的数据类型,操作类型默认Object

  • 泛型的类型参数只能是类类型,不能是基本类型

  • 泛型类型在逻辑上可以看成可以代表多个不同类型,但是同一个

三、泛型方法

泛型类是实例化时指定数据类型,泛型方法是被调用时指定数据类型。

  1. 定义语法:
修饰符   <泛型标识,...> 返回值类型   方法名(形参列表){
    方法体
}
  1. 其他基本与泛型类相似

四、类型通配符

就一个:?

  • 类型通配符一般时使用问号代替具体的类型实参;
  • 类型通配符时类型实参,而不是形参

上限:类/接口 <? extends 实参类型>
必须是实参类型或它的子类

下限:类/接口 <? super 实参类型>
必须是实参类型或它的父类

五、类型擦除

  1. 概念:泛型时JDK1.5引进的,之前没有,但泛型却能和之前版本很好的兼容。原因是泛型信息只存在于代码编译阶段,在进入JVM之前,与泛型相关的信息会被擦除,即类型擦除。

  2. 无限制的类型擦除
    在这里插入图片描述

  3. 有限制的类型擦除
    在这里插入图片描述

  4. 方法中的类型擦除
    在这里插入图片描述

  5. 桥接方法
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值