Cha*_*ill 1 java generics static types comparable
好吧,所以我一直在尝试实现一个默认情况下使用可比数据类型的简单二叉搜索树.
忽略我在课堂上的所有其他方法,这是我认为非常标准的一般设置:
public class BSTNode<E extends Comparable<? super E>>{
E data;
BSTNode<E> left;
BSTNode<E> right;
//and I'm trying to define a static method(inside of the class) like this:
public static <E> String displayAscending(BSTNode<E> node){}
}
Run Code Online (Sandbox Code Playgroud)
但编译器并不喜欢它.现在,我对通用类型有点新意,所以我将解释我对它的作用的理解,这可能有助于你弄清楚我的想法有什么问题.
E extends Comparable所以基本上是一个对象E,它是Comparable的扩展.可比较的元素是E的祖先,它本质上是一种抽象的方式,可以使用Comparable接口将E与其他元素进行比较.
然后在我的静态方法中,我试图以递归方式传递BSTNode.我似乎无法理解为什么它不起作用.我知道如果我通过BSTNode<?>它工作正常,但这似乎很危险.如果有人可以向我解释为什么这不起作用我可以尝试找到另一种解决方案.
试试这个
public static <E extends Comparable<? super E>> String displayAscending(BSTNode<E> node)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |