在Java中,super關(guān)鍵字可以用于泛型中表示某個(gè)類(lèi)的父類(lèi)類(lèi)型。通常情況下,super關(guān)鍵字用于泛型的上界限定。例如,如果我們有一個(gè)泛型類(lèi)GenericClass<T>
,我們可以使用<? super T>
來(lái)表示T的父類(lèi)類(lèi)型。
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
方法接受一個(gè)List
類(lèi)型的參數(shù),該List中存儲(chǔ)的元素必須是Integer的父類(lèi)。這樣我們就可以傳入Integer或其父類(lèi)的List實(shí)例作為參數(shù)。
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);
}
在上面的示例中,我們實(shí)例化了一個(gè)存儲(chǔ)Integer類(lèi)型的GenericClass
對(duì)象,然后分別傳入了存儲(chǔ)Number和Object類(lèi)型的List實(shí)例作為參數(shù)調(diào)用printSuperType
方法。這樣就可以靈活地處理不同類(lèi)型的父類(lèi)對(duì)象。