每日一记:集合进阶:泛型的通配符使用场景与细节

集合进阶:泛型的通配符使用场景与细节

目录

集合进阶:泛型的通配符使用场景与细节

前言

一.泛型不具备继承性,但是数据具备继承性

二.什么是通配符

三.通配符的使用

使用。



前言

本文章是基于在学习Java中遇到的知识点做详细的分享,这也是第一次尝试做这个系列的文章,还在学习中,希望可以点赞支持一下,会坚持做下去的。


一.泛型不具备继承性,但是数据具备继承性

在通配符之前,我们应该了解到,为什么会用到通配符,以及是如何产生的。

在使用ArrayList集合时通常会涉及到数据的泛型问题,在这里有几个点

泛型不具备继承性,如果你定义了一个方法,method(Arrlist<父类> list){};

此时去调用这个method();如果参数传入一个子类类型的集合,那就不可以通过,因为传入的是一个带有泛型的list ,泛型不具备继承性,也就是无法识别子类与父类的关系,但是如果在

ArrayList <父类> list = new Arraylist<>;如果在list中加入一个子类的对象则是可以的,形如

List.add(new 子类());

那我们如果在方法中如何加入父类和子类类型的集合呢。

利用泛型的通配符;

二.什么是通配符

泛型的通配符:

用?来表示不确定的类型

如 <? extends 父类>这就是通配符的格式 

三.通配符的使用

两种方法

1.method(Arrlist<?extends 父类> list){};表示可以传入父类,和继承了父类的子类集合;

2.method(Arrlist<?Super 子类> list){};表示可以传入子类,和子类的父类集合;

使用。

如果我们在定义类,方法,接口的时候不确定类型,就可以使用 。

如果类型不确定,但是确定只能传递以后某个继承体系中的类型。

关键:可以限定类型;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值