如果超类具有有限的泛型,那么具体类的泛型应该是什么

时间:2019-02-08 09:57:28

标签: java generics

子类定义的通用部分应该是什么

我有一个超类,我不想修改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)));

1 个答案:

答案 0 :(得分:1)

您只需要将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));
相关问题