二十五、JavaSE----泛型

举报
托马斯-酷涛 发表于 2022/05/26 01:29:13 2022/05/26
【摘要】 泛型:         泛型其实就是一种参数化的集合,它限制了你添加进集合的类型。泛型的本质就是一种参数化类型。多态也可以看作是泛型的机制。一个类继承了父类,那么就能通过它的父类找到对应的子类,但是不能通过其他类来找到具体要找的这个类。泛型的设计之处就是希...

泛型:

        泛型其实就是一种参数化的集合,它限制了你添加进集合的类型。泛型的本质就是一种参数化类型。多态也可以看作是泛型的机制。一个类继承了父类,那么就能通过它的父类找到对应的子类,但是不能通过其他类来找到具体要找的这个类。泛型的设计之处就是希望对象或方法具有最广泛的表达能力。

下面来看一个例子说明没有泛型的用法

 这段程序不能正常运行,原因是Integer类型不能直接强制转换为String类型

 如果我们用泛型进行改写后,示例代码如下

 这段代码在编译期间就会报错,编译器会在编译阶段就能够帮我们发现类似这样的问题。

泛型的使用

一般泛型有三种使用方式:1.用泛型表示类        2.用泛型表示接口        3.用泛型表示方法

用泛型表示类

泛型可以加到类上面,来表示这个类的类型

 用泛型表示接口

泛型接口与泛型类的定义及使用基本相同。

         一般泛型接口常用于生成器(generator)中,生成器相当于对象工厂,是一种专门用来创建对象的类。

用泛型表示方法

 泛型通配符

        List是泛型类,为了表示各种泛型List的父类,可以使用类型通配符,类型通配符使用问号(?)表示,它的元素类型可以匹配任何类型。例如

 

上界通配符<? extends ClassType>该通配符为ClassType的所有子类型。它表示的是任何类型都是 ClassType类型的子类。

下界通配符<? super ClassType>该通配符为ClassType的所有超类型。它表示的是任何类型的父 类都是 ClassType

文章来源: tuomasi.blog.csdn.net,作者:托马斯-酷涛,版权归原作者所有,如需转载,请联系作者。

原文链接:tuomasi.blog.csdn.net/article/details/120023418

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。