初学者Java如何将arraylist对象转换为输出字符串值?

初学者Java如何将arraylist对象转换为输出字符串值?,java,oop,arraylist,methods,Java,Oop,Arraylist,Methods,我正在编码让停车罚单模拟器工作。我有很多课程,相关的有ParkedCar课程、ParkingTicket课程和警官课程。现在我写了一个方法,我从ParkedCar中获取licensePlateNumber变量作为参数,我必须得到一辆车的ParkingTicket计数。我在下面的测试类中遇到了一个错误,因此它无法编译。方法如下 警官班 public int getParkingTicketsCountForACar(ParkedCar licensePlateNumber){ int number

我正在编码让停车罚单模拟器工作。我有很多课程,相关的有ParkedCar课程、ParkingTicket课程和警官课程。现在我写了一个方法,我从ParkedCar中获取licensePlateNumber变量作为参数,我必须得到一辆车的ParkingTicket计数。我在下面的测试类中遇到了一个错误,因此它无法编译。方法如下

警官班

public int getParkingTicketsCountForACar(ParkedCar licensePlateNumber){
int numberOfTickets = 0;
String carPlateNumber = licensePlateNumber.getLicensePlateNumber();
for(ParkingTicket ticket: ticketList){
if(carPlateNumber.equalsIgnoreCase(ticket.getCarLicensePlateNumber())){
numberOfTickets++
}
return numberOfTickets;
}
测试班

public void testGetParkingTicketsCountForACar() {

    PoliceOfficer p = new PoliceOfficer("Adam White","RCMP5225");
    ParkedCar car = new ParkedCar("Bob Smith", "Porsche", 2015, "1A2B3C", 65);
    ParkingMeter meter = new ParkingMeter("Burnaby",false,10.5,60);
    p.issueParkingTicket(car, meter);
    ParkedCar car2 = new ParkedCar("Scott Marks", "Ford", 2010, "MYCAR", 30);
    meter.setNumberOfPurchasedMinutes(1);
    p.issueParkingTicket(car2, meter);
    car.setNumberOfMinutesParked(125);
    meter.setNumberOfPurchasedMinutes(20);
    p.issueParkingTicket(car, meter);
    assertEquals(2,p.getParkingTicketsCountForACar("1a2B3c"));

我在“1a2b3c”的末尾收到一个错误,表示java.lang.String无法转换为ParkedCar。有没有不使用字符串覆盖方法解决此问题的方法?

此方法接受ParkedCar类型

public int getParkingTicketsCountForACar(ParkedCar licensePlateNumber){}
但你想传递字符串吗

assertEquals(2,p.getParkingTicketsCountForACar("1a2B3c"));

您正在传递licensePlateNumber的字符串值,并在方法中传递

public int getParkingTicketsCountForACar(ParkedCar licensePlateNumber){}
您希望输入ParkedCar类型,然后提取licensePlateNumber。您可以将该方法缩小为:

public int getParkingTicketsCountForACar(String licensePlateNumber){
    for(ParkingTicket ticket: ticketList){
    if(licensePlateNumber.equalsIgnoreCase(ticket.getCarLicensePlateNumber())){
        numberOfTickets++
    }
    return numberOfTickets;
}

你要么改变你的方法

public int GetParkingTicketScontForaCar(驻车许可证号码){。。。

public int getparkingticketskoutforacar(字符串carPlateNumber){。。。
只需删除方法中的第二行,

您必须将实际的
ParkedCar
对象引用传递给该方法。

GetParkingTicketScontForaCar需要一个类型为“ParkedCar”的参数,但您传递的是一个字符串,这就是代码无法编译的原因。在这种情况下,您可能需要调用p.GetParkingTicketScontForaCar(car)如果我将参数转换为字符串,那么如何访问licensePlateNumber输入?