在我的代码中,我有许多传递到排序方法中的ArrayLists。这些ArrayList中的每一个都有不同的Generic类型,但是所有这些类型都是Sorter的实现。排序方法被设计为接受Sorter类型的ArrayLists。我的问题是我还没有找到一种将arraylist的类型转换为它们的超类型的方法,以便可以将它们传递到sorter方法中。这是sorter方法的格式:

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


Spatial类是sorter的一个实现,如下所示:

public abstract class Spatial implements Sorter


但是,当调用quicksort方法时会生成错误(子项是Spatial类型的ArrayList):

children = ListSorter.quicksort(children);


有任何想法吗?

最佳答案

尝试这个:

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


甚至更好:

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

07-25 21:05