Java有8种基本类型,可以定义类,类相当于自定义数据类型,类之间还可以有组合和继承。
泛型将接口的概念进一步延伸,泛型的字面意思就是广泛的类型。
类、接口和方法代码可以应用于非常广泛的类型,代码与它们能够操作的数据类型不再绑定在一起,同一套代码可以用于多种数据类型,这样,不仅可以复用代码,降低耦合,而且可以提高代码的可读性和安全性。
这么说可能比较抽象,接下来,我们通过一些例子逐步进行说明。在Java中,类、接口、方法都可以是泛型的,我们先来看泛型类。
01,一个简单泛型类
对于泛型类,Java编译器会将泛型代码转换为普通的非泛型代码,就像普通Pair类代码及其使用代码一样,将类型参数T擦除,替换为Object,插入必要的强制类型转换。Java虚拟机实际执行的时候,它是不知道泛型这回事的,只知道普通的类及代码。
Java泛型是通过擦除实现的,类定义中的类型参数如T会被替换为Object,在程序运行过程中,不知道泛型的实际类型参数,比如Pair,运行中只知道Pair,而不知道Integer。认识到这一点是非常重要的,它有助于我们理解Java泛型的很多限制。
泛型主要有两个好处:
·更好的安全性。·更好的可读性。
语言和程序设计的一个重要目标是将bug尽量消灭在摇篮里,能消灭在写代码的时候,就不要等到代码写完程序运行的时候。
02,容器类
泛型类最常见的用途是作为容器类。所谓容器类,简单地说,就是容纳并管理多项数据的类。数组就是用来管理多项数据的,但数组有很多限制,比如,长度固定,插入、删除操作效率比较低。计算机技术有一门课程叫数据结构,专门讨论管理数据的各种方式。
这些数据结构在Java中的实现主要就是Java中的各种容器类,甚至Java泛型的引入主要也是为了更好地支持Java容器。,
03,泛型方法
除了泛型类,方法也可以是泛型的,而且,一个方法是不是泛型的,与它所在的类是不是泛型没有什么关系。
04,泛型接口
接口也可以是泛型的,我们之前介绍过的Comparable和Comparator接口都是泛型的,
类型参数的限定
无论是泛型类、泛型方法还是泛型接口,关于类型参数,我们都知之甚少,只能把它当作Object,但Java支持限定这个参数的一个上界,也就是说,参数必须为给定的上界类型或其子类型,这个限定是通过extends关键字来表示的。这个上界可以是某个具体的类或者某个具体的接口,也可以是其他的类型参数,我们逐个介绍其应用。
文章介绍了泛型的基本概念,包括泛型类、泛型方法和泛型接口,关于类型参数,介绍了多种上界限定,限定为某具体类、某具体接口或其他类型参数。泛型类最常见的用途是容器类,
在Java中,泛型是通过类型擦除来实现的,它是Java编译器的概念,Java虚拟机运行时对泛型基本一无所知,理解这一点是很重要的,它有助于我们理解Java泛型的很多局限性。
关于泛型,Java中有一个通配符的概念,用得很广泛,但语法非常令人费解,而且容易混淆,
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容