Skip to content
Java

泛型

泛型类和方法。

#generics#generic

Code

java
// Generic class
class Box<T> {
    private T value;
    public void set(T value) { this.value = value; }
    public T get() { return value; }
}

// Generic method
public static <T> T getFirst(List<T> list) {
    return list.isEmpty() ? null : list.get(0);
}

// Wildcard
public static void printList(List<?> list) {
    list.forEach(System.out::println);
}

// Upper bounded wildcard
public static double sum(List<? extends Number> list) {
    return list.stream().mapToDouble(Number::doubleValue).sum();
}

// Lower bounded wildcard
public static void addNumbers(List<? super Integer> list) {
    list.add(42);
}