ITPub博客

首页 > 应用开发 > Java > Java中的通配符

Java中的通配符

原创 Java 作者:码邦主666 时间:2021-01-20 16:37:12 0 删除 编辑

一、通配符概念

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

DEMO:观察问题

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

DEMO:通配符解决问题

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

 

二、通配符的上限

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

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

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

DEMO:类的泛型上限

类使用了泛型.上限之后实例化子类的时候指定的泛型的具体类型只能是泛型上限本类类型以及泛型上限类型的子类类型。 我之前在学习过程中用到的一些学习资料整理成了文档,以及我自身之前的一个面试文案和知识点补充,有需要的朋友可以加我的QQ群697888503,这里也希望大家最终都能够学有所成,学习编程不是一天两天的功夫,勤能补拙才是硬道理,祝大家最终都能成为一名合适开发攻城狮。

 

三、方法通配符的下限

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

DEMO:通配符下限类型

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

 

总结:

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

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

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



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69985551/viewspace-2751441/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Java中的对象比较
请登录后发表评论 登录
全部评论

注册时间:2020-10-16

  • 博文量
    141
  • 访问量
    79715