gpt4 book ai didi

java.util.LinkedList 无法转换为 ClassName

转载 作者:行者123 更新时间:2023-11-29 04:37:10 26 4
gpt4 key购买 nike

我正在学习 Java,所以请多多包涵,即使这对您来说很简单。

我正在使用两个链表:

private LinkedList<BloodDonor> x;
private LinkedList<BloodDonor> y;

public List()
{
x = new LinkedList<>();
y = new LinkedList<>();
}

我有一个名为 heroDonors 的方法来搜索 LinkedList x看看有没有人献血超过50次。如果是这样,该捐赠者将被添加到 LinkedList y并从 LinkList 中删除 x .如果不存在捐赠超过 50 次的捐赠者,则为空链表 y被退回。

我需要链表 y由方法返回,但我收到错误 java.util.LinkedList<BloodDonor> cannot be converted to BloodDonor .

public BloodDonor heroDonors()
{
int donations = 50;
for (BloodDonor donor : x) {
int number = donor.getNumberOfDonations();
if (donations < number) {
y.add(donor);
x.remove(donor);
}
if (donations > number) {

}
}
return y;
}

谁能解释为什么我会收到此错误?

最佳答案

如果你想返回 BloodDonor 的列表s 你必须实际制作那种类型的方法:

public LinkedList<BloodDonor> heroDonors() {
LinkedList<BloodDonor> result = new LinkedList<>();
...
return result;
}

顺便说一句:我认为在这种情况下你不应该使用字段 y但是声明一个局部变量以避免副作用。您也可以考虑返回基本类型 List<BloodDonor>相反,这将更好地允许在需要时使用另一个集合(而且我永远不会调用应用程序类 List)。

关于java.util.LinkedList<ClassName> 无法转换为 ClassName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40853046/

26 4 0