我有三个类模拟:Entities
,Plants
和Animals
(植物和动物extends
的实体)。
我希望一种方法能够对三个数组进行排序,数组中的元素都继承自同一类。
有没有一种方法可以将所有数组作为父类传递给方法。
我正在打电话:
sortEntityArray(AnimalList);
从:
void sortEntityArray(ArrayList<Entity> ListToSort) {
boolean sorted = false;
while (sorted == false) {
sorted = true;
for (int i1 = 0; i1 < ListToSort.size() - 1; i1++) {
if (ListToSort.get(i1).PositionX < ListToSort.get(i1 + 1).PositionX) {
sorted = false;
//switch
Entity Temp = ListToSort.get(i1);
ListToSort.set(i1, ListToSort.get(i1 + 1));
ListToSort.set(i1, Temp);
}
}
}
}
当我尝试通过时,出现以下错误:
The method sortEntityArray(ArrayList<Entity>) in the type World is not applicable for the arguments (ArrayList<Animal>)
有没有办法将所有数组作为父类传递给方法?
是的,如果您通过了考试,ArrayList<Entity>
您将可以使用所有这三种类型,因为它们extend
是同一父类。
我会尝试将方法的签名更改为:
void sortEntityArray(ArrayList<? extends Entity> ListToSort)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句