Skip to content

泛型是一种在编程中用于增加类型安全性和代码重用性的特性。它允许我们在定义类、接口或方法时使用类型参数,这样可以在使用时指定具体的类型。下面是一些使用泛型的常见场景和示例:

定义泛型类:
class Box<T> {
    private T item;

    public void setItem(T item) {
        this.item = item;
    }

    public T getItem() {
        return item;
    }
}

在上面的示例中,Box<T> 是一个泛型类,T是类型参数。通过使用泛型,可以在使用Box类时指定具体的类型。例如:

Box<Integer> box = new Box<>();
box.setItem(10);
Integer item = box.getItem(); // 返回 10
定义泛型接口:
interface List<T> {
    void add(T item);
    T get(int index);
}

在上面的示例中,List<T>是一个泛型接口,T是类型参数。实现该接口时,可以指定具体的类型。例如:

class ArrayList<T> implements List<T> {
    // 实现接口方法
}

ArrayList<String> list = new ArrayList<>();
list.add("Hello");
String item = list.get(0); // 返回 "Hello"

泛型方法:

class Utils {
    public static <T> T getFirstElement(List<T> list) {
        return list.get(0);
    }
}

在上面的示例中,getFirstElement是一个泛型方法,使用了类型参数T。该方法可以接受任意类型的List参数,并返回该列表的第一个元素。例如:

ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
int firstElement = Utils.getFirstElement(list); // 返回 1

这些示例展示了泛型的基本用法,通过泛型可以编写更加通用和灵活的代码,提高代码的可重用性和类型安全性。