dag*_*und 0 java generics arraylist supertype
在我的代码中,我有许多传递给排序方法的ArrayLists.这些ArrayLists中的每一个都具有不同的Generic类型,但所有这些类型都是Sorter的实现.排序方法旨在接受Sorter类型的ArrayLists.我的问题是我还没有找到一种方法将arraylists的类型转换为超类型,以便将它们传递给sorter方法.以下是分拣机方法的格式:
public static ArrayList<Sorter> quicksort(ArrayList<Sorter> members);
Run Code Online (Sandbox Code Playgroud)
Spatial类是分拣机的实现,如下所示:
public abstract class Spatial implements Sorter
Run Code Online (Sandbox Code Playgroud)
但是,当调用quicksort方法时会生成错误(children是Spatial类型的ArrayList):
children = ListSorter.quicksort(children);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
试试这个:
public static <T extends Sorter> ArrayList <T> quicksort(ArrayList<T> members);
Run Code Online (Sandbox Code Playgroud)
或者更好,这个:
public static <T extends Sorter> List <T> quicksort(List<T> members);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |