对Java超类和子类进行排序
我在做这个任务,我们必须创建两种类型的对象
public class Person implements Cloneable, Comparable<Person>
及
public class Book implements Cloneable, Comparable<Book>
该程序的主要任务是使用其自身的比较函数对两种类型进行排序,如下所示:
compareTo(Person o)
compareTo(Book o)
因此,我在主函数中创建了2个ListArray,如下所示,用于存储book和person对象:
List<Book> bookArray = new ArrayList<Book>();
List<Person> peopleArray = new ArrayList<Person>();
我在另一个类中实现了我的排序算法,如下所示:
public class Sort{
Comparable<Object>[] values;
public Sort(List<Object> inputArray) {
this.values = (Comparable<Object>[]) inputArray.toArray();
}
public doSort() {
//sort implementation...
}
问题在于使用上述数组调用此函数时
Sort sorter = new Sort(peopleArray);
sorter.doSort();
Eclipse显示的错误是“构造函数排序(列表)未定义” 我做错了什么? 提前谢谢你
# 1 楼答案
可以将任何类实例传递给对象类型。但List并不是List的父对象。这只是两种不同的类型
你可以说
这样它就可以接受任何类型