Java——泛型

文章介绍了Java中的泛型,一种在编译时期确保类型安全的机制。泛型允许在类、接口和方法中定义类型参数,以实现更灵活的代码重用。例如,泛型类`MyArray<T>`可以避免强制类型转换,提高代码可读性和效率。在编译时,泛型类型会被擦除,转换为Object或其他边界类型,但在源代码级别提供了类型检查。
摘要由CSDN通过智能技术生成

泛型

1.泛型定义

JDK1.5引入的新语法,通俗来讲,泛型:就是适用于许多类型,对类型实现了参数化。
注意:1.泛型是编译时期的一种机制。

2.具体实例

定义一个存储多种类型的数组(Object),根据下标值,获取数组元素。
如图:
1.存储时存储了多种数据类型
2.获取时,并不能直接获取,需要强制类型转换。复杂,实际代码时并不能知道每个元素类型。
在这里插入图片描述
解决办法:指定放什么类型,不用强转。
定义:泛型类

class MyArray < T > {
}
此时是一个参数,可以定义多种:
MyArray<T,O,E,P>
E 代表Element
K 代表Key
V 代表Value
N 代表Number
T 代表Type
本质占位符

实例化,并指定当前泛型类参数类型为

Integer:MyArray< Integer > myArray = new MyArray< Integer >

2.1语法

1.泛型类

泛型类 <类型实参> 变量名;
// 定义一个泛型类引用
new 泛型类 <类型实参> (构造方法实参);
// 实例化一个泛型类对象

注意
< E extends Number >
泛型的上界
代表E是Number的子类,或者E是Number本身。如果是接口则此参数一定实现了这个接口。

2.泛型方法

方法限定符 <类型形参列表> 返回值类型 方法名称(形参列表) { … }

实例:

public class Util {
//静态的泛型方法 需要在static后用<>声明泛型类型参数
public static void swap(E[] array, int i, int j) {
E t = array[i];
array[i] = array[j];
array[j] = t;
}
}

注意
1.指定的参数类型只能为引用数据类型。
2.此时存储时只能存储指定数据类型。
3.泛型当中不能去直接实例化一个泛型类型的数组。

数组的定义
Object[] obj = new Object[3]

3.泛型的作用

1.存储数据时,可以帮我们进行自动的类型转换。
2.获取元素时,可以帮我们进行类型转换。

4.泛型的编译

擦除机制:
在编译时将T类型擦除为Object类型,运行时不存在泛型的概念。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值