繁体   English   中英

Java-使用可比的静态通用类型

[英]Java - Static Generic Type using 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){} 
}

但是编译器不喜欢它。 现在,我是泛型类型的新手,所以我将解释我对泛型类型的理解,这可能会帮助您确定我的想法出了什么问题。

E扩展了Comparable,因此基本上,对象E是Comparable的扩展。 可比较的元素是E的祖先,这本质上是一种抽象的说法,可以使用Comparable接口将E与其他元素进行比较。

然后在我的静态方法中,我尝试递归地传递BSTNode。 我似乎无法解决为什么它不起作用的问题。 我知道如果我通过BSTNode<?>可以正常工作,但这似乎很危险。 如果有人可以向我解释为什么这不起作用,那么我可以尝试寻找其他解决方案。

尝试这个

public static <E extends Comparable<? super E>> String displayAscending(BSTNode<E> node)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM