【发布时间】:2015-01-25 11:12:10
【问题描述】:
我对下面的方法有很大的问题。
public class PoliceDepartment{
private ArrayList<PoliceOfficer> policeOfficers;
public PoliceDepartment()
{
policeOfficers = new ArrayList<PoliceOfficer>();
}
public void addPoliceOfficers(PoliceOfficer newPoliceOfficers)
{
if(newPoliceOfficers != null)
{
policeOfficers.add(newPoliceOfficers);
}
}
接受警员姓名作为参数的方法,验证传递的参数不为空,搜索集合并返回该警员开出的停车罚单的 ArrayList,如果没有由警员开出的停车罚单,则返回 null指明人员。官员姓名不区分大小写。此方法使用 while 循环和迭代器来实现所需的功能。
public ArrayList<ParkingTicket> getAllTicketByOfficer(String officerName) {
ArrayList<PoliceOfficer> al = new ArrayList<PoliceOfficer>();
Iterator<PoliceOfficer> it = policeOfficers.iterator();
while(it.hasNext()){
PoliceOfficer officer = it.next();
if(officerName != null && officerName.equalsIgnoreCase(officer.getOfficerName())){
al.add(officer);
}
else {
return null;
}
}
return al;
}
我的线路有问题:
return al;
发现的错误是“不兼容的类型”)
我不明白该怎么做。有人可以帮我吗?
【问题讨论】:
-
您正在迭代 empty
ArrayList。你预计会发生什么? -
发布将对象放入 ArrayList 的代码。
-
更糟糕的是,您正在遍历要修改的列表。
-
您正在尝试迭代
parkingTickets;在方法开始时创建的List。它是空的。你可以尝试迭代policeOfficers。 -
您在可以添加对象的地方添加了代码,但正如其他人指出的那样,这不是您要迭代的 ArrayList。