我正在学习java的路上,所以请耐心等待我,即使它对你很简单。
我正在使用两个LinkedLists:
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
的空链接列表。
我需要方法返回LinkedList 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;
}
有人能解释我收到此错误的原因吗?
答案 0 :(得分:2)
如果您想要返回BloodDonor
的列表,您必须实际制作该类型的方法:
public LinkedList<BloodDonor> heroDonors() {
LinkedList<BloodDonor> result = new LinkedList<>();
...
return result;
}
BTW:我认为在这种情况下你不应该使用字段y
,而是为了避免副作用而声明一个局部变量。您也可以考虑返回基类型List<BloodDonor>
,如果需要,这将更好地允许使用另一个集合(我永远不会调用应用程序类List
)。
答案 1 :(得分:1)
更改
public BloodDonor heroDonors()
到
public List<BloodDonor> heroDonors()