gpt4 book ai didi

java - 在 Java 中使用传递子类数组作为它们的父类

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:08:41 25 4
gpt4 key购买 nike

我有一个包含三个类的模拟:Entities , PlantsAnimals (植物和动物 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>)

最佳答案

Is there a way to pass all of the arrays to a method as their parent classes?

是的,如果你通过 ArrayList<Entity>您将能够使用所有 3 种类型,因为它们 extend同一个父类。

我会尝试将方法的签名更改为:

void sortEntityArray(ArrayList<? extends Entity> ListToSort)

关于java - 在 Java 中使用传递子类数组作为它们的父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34838386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com