gpt4 book ai didi

java - Java 中的多态性和 ArrayList

转载 作者:行者123 更新时间:2023-12-01 17:19:22 25 4
gpt4 key购买 nike

我有课Cell和一个类Neighbour延伸Cell 。但是当我尝试传递 ArrayList<Neighbour> 时出现错误到一个需要 ArrayList<Cell> 的函数。我错过了什么?

class Cell {
PVector pos;

Cell(PVector pPos) {
pos = pPos.get();
}
}

class Neighbour extends Cell {
int borders = 0;

Neighbour(PVector pPos) {
super(pPos);
}
}

private int inSet(PVector pPos, ArrayList<Cell> set) {
[...]

return -1;
}

[...]

ArrayList<Neighbour> neighbours = new ArrayList<Neighbour>();
PVector pPos = new PVector(0, 0);

[...]

inSet(pPos, neighbours);

最后一行抛出错误`方法 iniSet(PVector, ArrayList) 不适用于参数 (PVector, ArrayList);

感谢您的帮助!

最佳答案

那是因为

List<A> != List<B> ... even if B extends A.

您需要做的是将函数修改为以下内容

private int inSet(PVector pPos, ArrayList<? extends Cell> set) {
[...]
return -1;
}

希望有帮助。

关于java - Java 中的多态性和 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19853998/

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