![](/img/trans.png)
[英]How to write a Java constructor for variable number of arguments of different types?
[英]In Java, how to invoke a constructor with different variable types?
我想這是一個簡單的問題,但是我才剛剛開始學習! :P
我需要在checkParking()網關方法中調用ParkingTicket(parker,parkee)構造函數(如果“ if”語句為true),但出現以下錯誤: 不兼容的類型:int無法轉換為Car
public class ParkingTicket
{
private static int count = 1000;
private final String referenceNumber;
private final String carLicensePlate;
private int carMinutesParked;
private int meterMinutesPaid;
private static final String prefix = "V";
private ParkingTicket(String recordedLicense, int carParkedMinutes, int meterPaidMinutes)
{
count = (count + 1);
referenceNumber = prefix + count;
carLicensePlate = recordedLicense;
carMinutesParked = carParkedMinutes;
meterMinutesPaid = meterPaidMinutes;
}
private ParkingTicket(Car parker, ParkingMeter parkee)
{
this(parker.getLicensePlate(),
parker.getMinutesParked(),
parkee.getMinutesPaid());
}
public static int checkParking(Car minutesParked, ParkingMeter minutesPaid)
{
if (minutesParked.getMinutesParked() > minutesPaid.getMinutesPaid())
{
new ParkingTicket(minutesParked.getMinutesParked(), minutesPaid.getMinutesPaid());
}
else
{
ParkingTicket pt1 = null;
}
}
}
在此先感謝您提供的所有幫助!
在線上
new ParkingTicket(minutesParked.getMinutesParked(), minutesPaid.getMinutesPaid());
您正在嘗試使用構造函數
private ParkingTicket(Car parker, ParkingMeter parkee)
如您所見,這需要兩個參數, Car
和ParkingMeter
您傳遞的參數是int
我猜您想調用第一個構造函數? 您只需要更改行以包含許可證
new ParkingTicket(minutesParked.getLicensePlate(), minutesParked.getMinutesParked(), minutesPaid.getMinutesPaid());
您應該使用傳遞構造函數期望的參數:
ParkingTicket ticket = new ParkingTicket(minutesParked, minutesPaid);
我會更改那些變量的名稱。 minutesParked
是不是一個好名字Car
和minutesPaid
是不是一個好名字ParkingMeter
。
PS,您可能想對創建的實例做些事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.