这个问题已经在这里有一个答案:
- Java泛型的问题:类错误“不是类型变量的范围内”。 1个回答
我实现一个通用的AVL树,但我有一些编译错误。
我的AVL三通具有处理Node<T>
T类型的
在这个例子中,类型是事件class.I要比较的节点。
但是,每种类型的数据都有以不同的方式相比,对于这一点,我传递的比较数据本身来进行比较。
我试图使执行Comparable接口,同样的事情到事件类的节点。
我的代码结构看起来如下:
树型结构:
public class AvlTree<T extends Comparable<T>> {
private Node<T> root;
public AvlTree() {
root = null;
}
//other method to insert dellete operation in the tree
}
节点结构:
public class Node<T extends Comparable<T>> implements Comparable<T> {
private T data;
private Node<T> left;
private Node<T> right;
public Node() {
}
@Override
public int compareTo(T t) {
return this.data.compareTo(t);
}
}
事件类将被放置在一个节点对象:
public class Event implements Comparable<Event>{
private Point point;
public Event() {
}
@Override
public int compareTo(Event t) {
return 1;
}
}
这给了我一个编译错误的代码时,我声明了一个AvlTree:
private AvlTree<Node<Event>> treeOfEvents;
错误:
类型参数
Node<Event>
不是类型变量T的范围内
其中T是一个类型的变量:
T extends Comparable<T>
类AvlTree声明