Java泛型比较器

时间:2013-10-07 03:51:22

标签: java generics

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

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

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

4 个答案:

答案 0 :(得分:3)

试试这个

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

答案 1 :(得分:3)

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

中使用Comparable
class treeDB <T extends Comparable<T>>

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

答案 2 :(得分:2)

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

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

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

}

答案 3 :(得分:1)

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