温馨提示×

Java中super关键字在泛型中的应用

小樊
125
2024-08-02 21:37:14
栏目: 编程语言

在Java中,super关键字可以用于泛型中表示某个类的父类类型。通常情况下,super关键字用于泛型的上界限定。例如,如果我们有一个泛型类GenericClass<T>,我们可以使用<? super T>来表示T的父类类型。

public class GenericClass<T> {
    private T value;

    public void setValue(T value) {
        this.value = value;
    }

    public T getValue() {
        return value;
    }

    public void printSuperType(List<? super Integer> list) {
        System.out.println(list);
    }
}

在上面的例子中,printSuperType方法接受一个List类型的参数,该List中存储的元素必须是Integer的父类。这样我们就可以传入Integer或其父类的List实例作为参数。

public static void main(String[] args) {
    GenericClass<Integer> generic = new GenericClass<>();
    
    List<Number> numberList = new ArrayList<>();
    numberList.add(10);
    numberList.add(20);

    generic.printSuperType(numberList);

    List<Object> objectList = new ArrayList<>();
    objectList.add("Hello");
    objectList.add("World");

    generic.printSuperType(objectList);
}

在上面的示例中,我们实例化了一个存储Integer类型的GenericClass对象,然后分别传入了存储Number和Object类型的List实例作为参数调用printSuperType方法。这样就可以灵活地处理不同类型的父类对象。

0