2012-01-15 194 views
3

我在靜態方法中泛型類型有問題。我有這樣的代碼:靜態方法中的泛型類型

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必須使用參數化類型合格,因爲它不是靜態的

我已經搜索並找不到答案。

+0

哪裏'equalTrees'方法?它是在「BST」類還是在「Node」類中? BST班級內的 – 2012-01-15 16:48:13

+0

。 – 2012-01-15 17:00:56

+3

這是哪一種語言? – 2012-01-15 17:08:07

回答

2

試試這個:

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; 
    } 

} 
+0

然後我得到這個錯誤:不能靜態引用非靜態類型E – 2012-01-15 16:48:42

+0

在你的問題中缺少一些東西,你應該發佈更多的代碼,因爲如上所述,上面的代碼對我有用 – 2012-01-15 16:52:12

+0

用整個Node類編輯 – 2012-01-15 16:55:07