我正在使用Java Generics进行编码。我想定义一个二进制树类,它通常能够接受任何类,并保证该类具有比较器方法比较(T o1,T o2),以查看是否需要遵循右侧或左侧子树进行插入进入我的二叉树。
public class treeDB <T implements Comparator> {
//define my binary tree methods
}
这是我对如何强制实现Comparator方法的最佳估计,但编译引发了错误,我不知道它想知道它想要什么。
答案 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>
。