首页主机泛型,泛型的定义

泛型,泛型的定义

编程之家2024-05-28119次浏览

一、什么是模式泛型

泛型+模式。其实泛型的概念挺广泛的,课题也比较大,不是一两句话能说明白的。但可以简单的理解,泛型就是类型的参数化,即把类型作为参数交给类的使用者来确定,由使用者给定;还有一种理解就是类型的多态,我们平常所说得多态包括参数的多态和方法的多态,而泛型则将多态扩展到类型的多态。

泛型,泛型的定义

二、泛型的使用

泛型只能适用于引用类型不能使用于基本类型。静态方法的返回值和静态属性不能使用泛型。

三、泛型的原理及使用方法

一、什么是泛型

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

KV(keyvalue)分别代表java键值中的KeyValue

E(element)代表Element

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

四、泛型的原理

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

微信扫码关注?微信扫码领红包iphone6分期付款(什么是iphone6分期付款)