静态方法中的泛型类型
我在静态方法中泛型类型有问题。我有这样的代码:静态方法中的泛型类型
public class BST<E extends Comparable<E>> {
public static class Node<T> {
private T value;
private Node<E> left, right, parent;
private Node(T v){ value = v; }
public String toString() {
return value.toString();
}
}
....
}
然后我想使用节点在这个静态方法:
public static <E> boolean equalTrees(Node<E> r1, Node<E> r2)
但节点是给我这个错误:
成员类型BST.Node必须使用参数化类型合格,因为它不是静态的
我已经搜索并找不到答案。
试试这个:
public class BST<E extends Comparable<E>> {
public static <E> boolean equalTrees(Node<E> r1, Node<E> r2) {
return false;
}
public static class Node<E> {
private E value;
private Node<E> left, right, parent;
}
}
然后我得到这个错误:不能静态引用非静态类型E – 2012-01-15 16:48:42
在你的问题中缺少一些东西,你应该发布更多的代码,因为如上所述,上面的代码对我有用 – 2012-01-15 16:52:12
用整个Node类编辑 – 2012-01-15 16:55:07
哪里'equalTrees'方法?它是在“BST”类还是在“Node”类中? BST班级内的 – 2012-01-15 16:48:13
。 – 2012-01-15 17:00:56
这是哪一种语言? – 2012-01-15 17:08:07