在Java编程中,泛型(Generics)是一个强大的特性,它允许程序员在编写类、接口和方法时定义类型参数(type parameters)。这些类型参数在类、接口或方法被实例化时(例如,创建对象或使用方法时)被具体的类型所替换。通过泛型,我们可以创建可重用的组件,这些组件可以处理多种数据类型,同时保证了类型安全并减少了类型转换的错误。
一、核心知识点
1. 泛型类
泛型类就是具有一个或多个类型参数的类。类型参数被尖括号(< >)括起来,并放在类名的后面。例如:
public class Box<T> {
private T t;
public void set(T t) {
this.t = t; }
public T get() {
return t; }
}
在上面的代码中,T 是一个类型参数,它可以在创建 Box 对象时指定为任何类型。
2. 泛型接口
与泛型类类似,泛型接口也包含类型参数。例如:
public interface List<E> {
void add(E e);
E get(int index);
// ... 其他方法 ...
}
在这个例子中,List 是一个泛型接口,它有一个类型参数 E。
3. 泛型方法
泛型方法是指可以应用于多种数据类型的方法。类型参数放在方法签名的返回类型之前(在修饰符和返回类型之间)。例如: