阅读量:0
在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
方法。这样就可以灵活地处理不同类型的父类对象。