在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
方法。這樣就可以靈活地處理不同類型的父類對象。