java - 如果父类(super class)具有有界泛型,则具体类的泛型应该是什么

标签 java generics

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

我有一个父类(super class),我不想修改 Sort 定义中的通用部分

public class Sort<T extends Comparable<? super T>> {
  public abstract void sort(List<T> thingToSort);
}

我想写

public void HeapSort"<>" extends Sort"<>" {

}

HeapSort 定义的通用部分应保留什么内容

以及 main 中的某个地方

HeapSort sort = new HeapSort<>(new ArrayList(Arrays.asList(1,2,3,4)));

最佳答案

您只需将 T 及其边界传播到扩展类:

public void HeapSort<T extends Comparable<? super T>> extends Sort<T> { ... }

这实际上在 HeapSort 上定义了一个类型参数 T,用于实例化父类(super class) Sort 上的类型参数。

然后您可以创建一个新的HeapSort,如下所示:

HeapSort<Integer> sort = new HeapSort<>(Arrays.asList(1,2,3,4));

关于java - 如果父类(super class)具有有界泛型,则具体类的泛型应该是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54589861/

相关文章:

java - 来自 Map<T,K> 和 Map<T,V> 的跨映射 : Map<K, V> 的通用键控

java - 用抽象类的子类的对象填充通用列表

java - 用于单元测试的 Mock dao

java - 声明一个二叉树,它采用包含通用类型键值的通用类型节点?

java - "Thread-19"java.lang.IllegalStateException : Not on FX application thread; currentThread = Thread-19

java - 插入排序的实现差异

java - 我是否跳过了JRE和Launch4j中的必要步骤,导致exe文件失败?

java - 使用 iTextPdf 向表格单元格添加填充

Java 泛型 - 如何编写带有类型参数的静态方法?

java - 术语 "generic"的最佳解释是什么?