2012-01-07 106 views
0

在我的代碼中,我有一些傳遞給排序方法的ArrayLists。這些ArrayLists中的每一個都有不同的通用類型,但所有這些類型都是Sorter的實現。排序方法旨在接受Sorter類型的ArrayLists。我的問題是,我還沒有找到一種方法將陣列列表的類型轉換爲它們的超類型,以便它們可以傳遞到分類器方法中。以下是分揀機方法的格式爲:如何在Java中使用超類型的泛型類?

public static ArrayList<Sorter> quicksort(ArrayList<Sorter> members); 

類空間是分揀機的實現如下:

public abstract class Spatial implements Sorter 

然而,當快速排序的方法被稱爲是產生一個錯誤(孩子一個類型爲Spatial的ArrayList):

children = ListSorter.quicksort(children); 

任何想法?

回答

6

試試這個:

public static <T extends Sorter> ArrayList <T> quicksort(ArrayList<T> members); 

甚至更​​好,這一點:

public static <T extends Sorter> List <T> quicksort(List<T> members); 
+0

感謝您的幫助,該固定我的問題。 – dagronlund 2012-01-08 00:00:28

+0

沒問題,很樂意幫忙。如果您覺得它解決了您的問題,請隨時將答案標記爲正確。 – Perception 2012-01-08 00:07:58