我正在研究泛型和排序算法,我的教授为我们提供了一个基于我们的排序类的模板。但是,我对以下含义感到困惑:
public interface Sort<T extends Comparable<?>>
我有另一个班级(MergeSort)
public class MergeSort<T extends Comparable<?>> implements Sort<T> {
然而,对于该类标题,我不能使用以下代码行
if (l.get(leftIndex).compareTo(r.get(rightIndex)) < 0)
因为compareTo给我一个错误
The method compareTo(capture#1-of ?) in the type Comparable<capture#1-of ?>
is not applicable for the arguments (T)
但如果我将Comparable<?>
的问号更改为Comparable<T>
,则可以正常工作。但是,如果有人可以提供帮助,我不明白这背后的逻辑或原因。谢谢!
其他信息:我的教授将为我们提供ArrayList<Integer>
整数,我们必须初始化我们的排序类,使其成为我们方法中的LinkedList<T> = new LinkedList<>()
。
谢谢!