Java 静态方法中的泛型类型
静态方法中的泛型类型有问题。我有以下代码:Java 静态方法中的泛型类型,java,class,generics,methods,static,Java,Class,Generics,Methods,Static,静态方法中的泛型类型有问题。我有以下代码: 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 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();
}
}
....
}
公共类BST{
公共静态类节点{
私人T值;
私有节点左、右、父节点;
专用节点(TV){
值=v;
}
公共字符串toString(){
返回值.toString();
}
}
....
}
然后我想在这个静态方法中使用Node:
public static <E> boolean equalTrees(Node<E> r1, Node<E> r2)
公共静态布尔等式树(节点r1、节点r2)
但是at节点给了我这个错误:
成员类型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;
}
}
公共类BST{
公共静态布尔等式树(节点r1、节点r2){
返回false;
}
公共静态类节点{
私人股本价值;
私有节点左、右、父节点;
}
}
equalTrees方法在哪里?它是在BST
类中还是在节点
类中?请使用适当的语言(我想是Java)重新标记。我遇到了这个问题,我解决了它,没有将节点声明为内部类,但是创建一个只包含节点类的新文件时,我得到了一个错误:无法对非静态类型进行静态引用。你的问题中缺少了一些东西,你应该发布更多的代码,因为正如我提到的,上面的代码适用于Meeded,整个节点类我编辑了我的答案,请检查上述代码是否适用于您