java中的通配符_Java中的通配符

一、通配符概念

其实.上很多技术点都是为了解决某一问题而出现的,那么我们在学习的过程中可以先提出问题,然后在使用我们的技术去解决。

DEMO:观察问题dc6b11facdf7c95d3b29268cad514866.png

633f76ba4a1b04bd02de2a0fdf4e4938.png

以上代码可以正常执行,但是如果泛型类中的类型改变之后发现了方法中的参数的泛型也需要改变,这就说明了fun方法依赖Person的泛型,这也是耦合度较高的一种体现,此时我们可以在方法的参数中使用通配符代替具体的泛型。通配符使用“?”即可。

DEMO:通配符解决问题c7dfa36ef4936b3e478bd846b4cdb5bc.png

6abe8fe426dd28015a31be0f8733da3f.png

此时使用了“?”在方法中替代具体的泛型类型,之后不管Person中的泛型如何改变,fun 方法都不需要改动,其实通配符还有两个子通配符。一个是通配符上限,一个是通配符下限。

二、通配符的上限

1、通配符上限: ? extends. 上限 类型。

DEMO:在方法中指定通配符的上限fd99577a71877188c0ea8e524f993c87.png

0bb53acb1707f0839e4a58ccb91e45d5.png

方法方法定义了上限之后:方法只能接受上限类型以及.上限类型的子类类型。除了方法的通配符可以定义上限之外类的泛型也可以定义上限。

DEMO:类的泛型上限d149dd5805ac0673524d5430239440ec.png

abdce72c5e29710c4cc5e521f501302f.png

类使用了泛型.上限之后实例化子类的时候指定的泛型的具体类型只能是泛型上限本类类型以及泛型上限类型的子类类型。

三、方法通配符的下限

定义方式: ? super‘ 下 限类型

DEMO:通配符下限类型98a25ecff927f7bbf0045a93288e3325.png

b0e10cba9b0db7a44c6ef7dd22db0acb.png

使用了通配符下限之后:方法只能接受下限类型以及下限类型的父类类型作为泛型具体类型。类泛型有下限吗?类的泛型是没有下限的。

总结:

1、使用通配符“?”解决了方法对泛型类的依赖

2、通配符的.上限“? extends.上限类型”, 方法只能接受上限类型以及上限类型的子类类型,泛型类也可以设置上限。

3、通配符下限“?super 下限类型”,方法只能接受下限本类类型以及下限的父类类型,泛型类不可以设置下限。

详细的视频学习bea5e51e4f28da39f4e5fce81bfc4431.png

0a2e5a0965a3c0d6dba9e31d18c7fa39.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值