子类定义的通用部分应该是什么
我有一个超类,我不想修改Sort定义中的通用部分
public class Sort<T extends Comparable<? super T>> {
public abstract void sort(List<T> thingToSort);
}
我想写
public void HeapSort"<>" extends Sort"<>" {
}
在HeapSort定义的通用部分应保留什么
在主要的地方
HeapSort sort = new HeapSort<>(new ArrayList(Arrays.asList(1,2,3,4)));
最佳答案
您只需要将T
及其范围传播到扩展类:
public void HeapSort<T extends Comparable<? super T>> extends Sort<T> { ... }
这有效地定义了
T
上的类型参数HeapSort
,用于实例化超类Sort
上的类型参数。然后,您可以像下面这样创建一个新的
HeapSort
:HeapSort<Integer> sort = new HeapSort<>(Arrays.asList(1,2,3,4));
关于java - 如果父类(super class)具有有限的泛型,那么具体类的泛型应该是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54589861/