泛型类型作用域不适用于内部 class?

generic type scope does not apply to inner class?

我有以下代码,其中类型 T 扩展了 Comparable,但是当我尝试这样做时出现编译错误

root.node.compareTo(min).

说 compareTo 不适用。似乎通用类型范围不适用于内部 class?

public class Tree<T extends Comparable> {
    public class Node<T>{
        private T node;
        private Node<T> left;
        private Node<T> right;
        public Node(T node, Node<T> left, Node<T> right) {
            super();
            this.node = node;
            this.left = left;
            this.right = right;
        }       
    }
    public boolean isBalanced(Node<T> root){
        return isBalanced(root, Integer.MIN, Integer.MAX);
    }
    private boolean isBalanced(Node<T> root, T min, T max){
        if(root == null){
            return true;
        }
        if(root.node.compareTo(min) < 0 || root.node.compareTo(max) > 0){
            return false;
        }
        return isBalanced(root.left, min, root.node) || isBalanced(root.right, root.node, max);
    }
}

当你说 public class Node<T> 时,你会从外部 class 遮蔽 <T>。您应该从内部 class 声明中删除 <T> ,或者更好的是,使内部 class 成为静态嵌套 class (因为没有内在原因节点需要知道关于它所依附的树)。

(注:也用<T extends Comparable<T>>。)