[英]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.