泛型学习

最近在抽取代码,对泛型还不太了解,所以进行泛型的学习


泛型是 jdk1.5出现的新特性

泛型的集合写法

为什么需要泛型?
1.将运行时的问题提前至编译时
2.避免了无畏的强制类型转换

注意:泛型没有多态的概念,左右两边的数据类型必须一致或者是只写一边(只写一边是为了兼容低版本的jdk写法)

需求:定义一个方法可以传入任意类型的参数,要求方法的返回值类型
-----自定义泛型:
自定义泛型就是一个数据类型的占位符,或者是一个数据类型的变量。

泛型里面不允许使用基本数据类型,如果要使用基本数据类型,就要使用基本数据类型对应的包装类型
int -------- Integer
char -------- Character

泛型类
数据类型 T 何时替换?
1.在使用该类创建对象的时候确定的 T 的类型
2.如果不指定泛型的具体数据类型,那么泛型默认的数据类型为object
3.静态方法不能使用类上自定义泛型,如果静态方法需要使用自定义泛型必须在方法上自己声明使用

泛型接口
1.接口上的自定义泛型的具体数据类型是在实现该接口的时候指定的
2.如果实现接口时不指定泛型的具体数据类型,那么泛型默认的数据类型为object
3.如果不在实现接口的时候指定自定义泛型的具体类型,那么接口实现类要声明自定义泛型

泛型的上下限
1. ? : 泛型的通配符,可以匹配任意的数据类型
2.泛型的通配符一般不会单独使用,一般都会配合泛型的上下限去使用
3. ? super Interger ,------具体类型可以是Interger或者是Interger的父类,这称为泛型的下限
4. ? extends Number -----具体类型可以是Number或者是Number的子类,这称为泛型的上限

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值