首页 > 其他分享 >泛型的进阶

泛型的进阶

时间:2024-03-28 12:59:50浏览次数:25  
标签:进阶 传入 子类 通配符 Fruit 泛型 父类

1 通配符 ?

我们想调用fun函数帮我们打印,但由于不知道Message具体是什么类型,所以我们可以使用 : ?即通配符

当我们将fun函数中改为Message<?>此时就不会报错

2 通配符的上界:

<? extends 上界>

Demo:<? extends Fruit>意思是传入的实参需要是 Fruit或者 Fruit的子类

当我们用通配符时,其接受结果应该是通配符的上界。因为无法确定返回结果具体是什么,所以要用父类接收

3 通配符的下界

<? super Fruit>

意思是传入的实参类型应该是Fruit或者Fruit的父类。

注意此时我们只能传入或者设置数据,但是不能接收数据,因为编译器无法准备知道Fruit的父类是谁。除非用Object接收。并且传入的参数应该是Fruit或者Fruit的子类

message代码

以上内容了解即可,不需要熟练掌握。

需要了解泛型的可以看之前博客泛型的介绍:

CSDN

标签:进阶,传入,子类,通配符,Fruit,泛型,父类
From: https://blog.csdn.net/m0_74329692/article/details/137089280

相关文章

  • 容器一(泛型、Collection 接口)
    目录泛型Generics自定义泛型容器中使用泛型Collection接口泛型Generics        泛型是JDK1.5以后增加的,它可以帮助我们建立类型安全的集合。在使用了泛型的集合中,遍历时不必进行强制类型转换。JDK提供了支持泛型的编译器,将运行时的类型检查提前到了编......
  • Copy 进阶用法
    Copy进阶用法本文出处:https://www.modb.pro/db/239809copy是最基础的导入导出命令,那么它有什么其他用法可以帮助我们更好地进行导入导出的工作呢?关于导入方式导入数据的方式有很多种,下面列举的是最常见的三种方式方式 特点INSERT 通过INSERT语句插入一行或多行数据,及从......
  • 泛型编程之模板
    1.函数模板重要行:template<typenameT,typenameT1>关键值class和typename含义相同,那么我们以后就使用typename即可。 一般情况下的格式:template<模板参数列表>返回值类型函数名(函数参数) 模板参数列表的理解:函数参数列表在运行时调用者用实参来初始化形参而......
  • 消息sms 邮箱/手机号/push发送的方案 & 定时任务xxlJob灵活度 & 泛型和发送的模板类设
    消息sms邮箱/手机号/push发送的方案&定时任务xxlJob灵活度&泛型和发送的模板类设计1.消息sms邮箱/手机号/push发送的方案1.判断收件人地址是否为空,不为空则发送邮件。为空则不发送。可以通过该方法终止一些消息的发送。2.收件人的地址可以配置在Apollo中,直接删除该key......
  • python 数据类型和运算符 进阶学习
    有了前面的基础的,我们对数据类型有了一定的了解,按照思维进阶深度学习的学习方法,我们对前面的实例进行扩展学习,以求学习到更多一点的知识。实例二:输入两个数,计算它们的和、平方、三次方、平方根、三次方根  首先是复习前面的数据类型的知识该程序的执行结果  是......
  • Copy 进阶用法
    Copy进阶用法本文出处:https://www.modb.pro/db/239809copy是最基础的导入导出命令,那么它有什么其他用法可以帮助我们更好地进行导入导出的工作呢?关于导入方式导入数据的方式有很多种,下面列举的是最常见的三种方式方式 特点INSERT 通过INSERT语句插入一行或多行数据,及从......
  • Java进阶 - [1-4] 反射
      一、类加载区别当我们刚接触java语言的时候,我们最常见的代码应该就是初始化某个对象,然后调用该对象的方法。1、使用new创建对象,返回对象的引用。Studentstudent=newStudent();2、调用方法:student.say(); 当我们想在运行期才能指定具体对象的类型或调用的某个方法......
  • 05-python函数进阶和文件
    函数函数的多返回值变量间逗号隔开,可以多种类型defhello():return1,True,"hello"x,y,z=hello()函数的传参方式位置参数,根据位置传参defcan1(x,y,z):print(x,y,z)can1(2,4,8)关键字参数,根据k=v传参,可以和位置参数混用,位置参数需要在前defcan2......
  • js基础知识进阶版
    雷迪斯andthe乡亲们 欢迎你们来到奇幻的编程世界 回顾一下吧!上篇我们学习了开始使用js、js的输出方式、js的语法、js的数据类型、隐性转换 、 显性转换、js转换为数值、js类型转换的应用、js转换为字符串、js转换为bool类型、js的运算符、js赋值运算符、js的比较运......
  • Docker进阶:Docker Swarm(集群搭建) —实现容器编排的利器
    Docker进阶:DockerSwarm(集群搭建)—实现容器编排的利器1、什么是DockerSwarm?2、DockerSwarm与DockerCompose的区别3、创建一个Swarm集群(1-Manager,2-Worker)1、资源准备2、初始化Swarm集群Manager节点3、添加Worker节点到Swarm集群4、Manager节点查看集群状态4、......