1

我正在使用 Java 泛型进行编码。我想定义一个能够接受任何类的二叉树类,并保证该类具有 Comparator 方法 compare(T o1, T o2) 以查看我是否需要遵循右子树或左子树进行插入进入我的二叉树。

public class treeDB <T implements Comparator> {
    //define my binary tree methods
}

这是我对如何强制实现 Comparator 方法的最佳估计,但是编译会引发错误,我不知道它想要什么。

4

4 回答 4

3

尝试这个

class treeDB <T extends Comparator<T>> {
...
于 2013-10-07T03:54:44.117 回答
3

每个人都提供了正确的语法,但您可能要考虑使用Comparableas

class treeDB <T extends Comparable<T>>

差异是微妙的,也许这不是更好的选择。但它永远不会伤害看。

于 2013-10-07T04:05:33.177 回答
2

首先,implements应该替换为extends. 在泛型extends中,即使泛型类型实现了接口,也会使用关键字。

其次,仅使用Comparator会导致警告它是原始类型。您必须对其进行参数化。这是您的解决方案:

public class treeDB <T extends Comparator<T>> {

}
于 2013-10-07T03:55:15.663 回答
1

这应该是public class treeDB <T extends Comparator>,不是public class treeDB <T implements Comparator>

于 2013-10-07T03:53:25.653 回答