簡體   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