泛型理解,? extends T, ? super T

注:在Java中,经常用T、E、K、V等形式的参数来表示泛型参数。

T:代表一般的任何类。
E:代表 Element 的意思,或者 Exception 异常的意思。
K:代表 Key 的意思。
V:代表 Value 的意思,通常与 K 一起配合使用。
? 通配符类型 无边界的通配符(Unbounded Wildcards), 就是<?>, 比如List<?>
       无边界的通配符的主要作用就是让泛型能够接受未知类型的数据. 
<? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类
<? super T> 表示类型下界(Java Core中叫超类型限定),
	表示参数化类型是此类型的超类型(父类型),直至Object
注意: 你可以为一个泛型指定上边界或下边界, 但是不能同时指定上下边界.

上界限定符接受 extends 后面类的本身与其子类, 下界限定符接受 super 后面类的本身与其父类。无限定通配符接受任何类。

List<?> list 可以赋值任何类型,但是不能添加具体的类型

List<Object> list 只能赋值List<Object>,但是可以添加任何类型

List<?extends Object> list 与 List<?> list没区别, 可以把List<?>类型付给List<?extends Object>类型

注意:List<T> 这里T是指定get与add的数据类型,对List<T>类型赋值的时候要赋予指定类型的集合,跟是否继承实现没关系,否则编译不过

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值