Java中泛型的用法

java中泛型理解

一、为什么要有泛型?
1.解决元素储存的安全性问题
2. 解决获取数据元素时需要类型强转的问题;如图
在这里插入图片描述
在这里插入图片描述
二、什么是泛型?
泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)

三、使用泛型需要注意的
在这里插入图片描述
还有一点:java中没有泛型数组的说法,不允许创建泛型数组

泛型Java编程语言的一个功能,它允许在定义类、接口和方法使用类型参数。泛型的主要目的是为了提供更强的类型检查和消除代码类型转换。泛型可以用在类、接口、方法和构造器,并且可以应用于任何类型,包括基本类型泛型的基本用法可以分为以下几类: 1. 泛型类和接口 使用泛型类和接口可以编写更为通用的代码,不依赖于指定的具体数据类型。例如: ```java public class Box<T> { private T t; // T stands for "Type" public void set(T t) { this.t = t; } public T get() { return t; } } ``` 在这个例子,`Box<T>`是一个泛型类,`T`是一个类型变量,表示该类的实例可以存储任何类型的对象。 2. 泛型方法 泛型方法可以在普通的非泛型定义。例如: ```java public class Util { public static <K, V> boolean compare(Pair<K, V> p1, Pair<K, V> p2) { return p1.getKey().equals(p2.getKey()) && p1.getValue().equals(p2.getValue()); } } ``` 这个`compare`方法使用了两个类型参数`K`和`V`,并应用于`Pair<K, V>`类型的参数。 3. 泛型通配符 泛型通配符`<?>`用于创建那些可以工作于多种不同数据类型泛型类或方法。例如: ```java public void processElements(List<?> elements) { for(Object element : elements) { // do something with element } } ``` 在这里,`processElements`方法可以处理任何类型的`List`对象。 4. 类型通配符的界限 使用`extends`关键字定义泛型类型的上界,用于限制泛型变量的类型。例如: ```java public class Processора<T extends Number> { public void process(T element) { // do something with T } } ``` `Processora<T>`类泛型类型`T`只能是`Number`或其子类。 5. 泛型类型擦除 Java泛型是通过类型擦除来实现的,这意味着在运行泛型信息将不会存在。所有的泛型信息在编译器编译会被擦除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值