java中的泛型是什么

在Java中,泛型(Generics)是一种工具,它允许在编译时提供类型安全,同时还能保持代码的通用性和复用性。泛型在Java 5中引入,用于创建类型安全的数据结构。
泛型的主要优点包括:
类型安全
:使用泛型可以避免在编译时出现类型错误。
代码复用
:泛型使得代码更加通用,可以用于多种数据类型。
性能提升
:泛型避免了类型转换和装箱拆箱操作,提高了代码的执行效率。
泛型的使用场景:
类和接口
:可以定义泛型类和接口。
方法
:可以定义泛型方法。
数组和集合
:可以创建泛型数组和集合。
泛型的基本语法:
泛型类
:
public class Box {
private T t;
public void set(T t) { this.t = t; }
public T get() { return t; }
}
泛型方法
:
public T returnT(T t) {
return t;
}
泛型接口
:
public interface Generator {
T next();
}
泛型数组
(Java中不允许直接创建泛型数组,但可以通过非泛型数组来实现):
Integer[] array = (Integer[]) new Number[10];
泛型集合
:
List list = new ArrayList();
泛型的类型参数:
类型参数
:在尖括号中声明的参数,如

。
类型通配符
:
?
,用于表示不确定的类型。
泛型的上下文限定:
非限制性通配符
:
?
,表示任意类型。
限制性通配符
:
上界限定
:
? extends T
,表示T的子类型。
下界限定
:
? super T
,表示T的超类型。
示例:
限制性通配符
:
List list = new ArrayList();
// 只能读取,不能写入
非限制性通配符
:
List list = new ArrayList();
// 可以读取,但不能确定具体类型,不能写入
泛型是Java中一个非常强大的特性,它使得代码更加灵活和安全。