1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 泛型的原理及使用方法 – java – 前端

泛型的原理及使用方法 – java – 前端

时间:2020-10-30 15:34:18

相关推荐

泛型的原理及使用方法 – java – 前端

一、什么是泛型

Java从1.5之后支持泛型,泛型的本质是类型参数,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

若不支持泛型,则表现为支持Object,不是特定的泛型。泛型是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。许多重要的类,比如集合框架,都已经成为泛型化的了。

二、泛型有什么优点

泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率。

1、类型安全

泛型的主要目标是提高 Java 程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就无法落实到代码中,仅仅能停留在设计方案或者注释中。

2、消除强制类型转换

泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了强制转换代码和出错机会。

3、潜在的性能收益

泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。

三、泛型如何表示

大家在泛型中是用的T,E,K,V有什么区别呢,实际上使用大写字母A,B,C,D……X,Y,Z定义的,就都是泛型,把T换成A也一样,这里T只是名字上的意义而已,如:

? 表示不确定的java类型,类型是未知的。

T (type) 表示具体的一个java类型,如果要定义超过两个,三个或三个以上的泛型参数可以使用T1, T2, …, Tn

K V (key value) 分别代表java键值中的Key Value

E (element) 代表Element

extends、super 泛型的参数类型可以使用extends、super语句,例如<T extends superclass>。习惯上称为“有界类型”。

四、泛型的原理

泛型是一种语法糖,泛型这种语法糖的基本原理是类型擦除,即编译器会在编译期间「擦除」泛型语法并相应的做出一些类型转换动作

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。