gpt4 book ai didi

java - 泛型类型范围不适用于内部类?

转载 作者:行者123 更新时间:2023-12-02 03:21:30 25 4
gpt4 key购买 nike

我有以下代码,其中类型 T 扩展了 Comparable,但当我尝试执行此操作时出现编译错误

root.node.compareTo(min).

说“compareTo”并不适用。看来泛型类型范围不适用于内部类?

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>时,您正在跟踪 <T>来自外层类(Class)。您应该删除 <T>从内部类声明中,或者更好的是,使内部类成为静态嵌套类(因为节点没有内在原因需要了解它所附加到的树)。

(注意:也可以使用 <T extends Comparable<T>> 。)

关于java - 泛型类型范围不适用于内部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39553747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com