【发布时间】:2022-01-17 20:50:26
【问题描述】:
我是 Java 新手,我有一个 Passenger 构造函数类的对象数组。如果正在创建乘客对象并且插入的出生日期不是我在下面指定的正确格式,我正在尝试显示错误消息。问题是当我只有一个出生日期格式不正确时,错误消息在整个数组中不断重复。
这是我的主要课程:
public class IPOO_P2 {
private static Passenger[] passengers = new Passenger[10];
public static void main(String[] args) {
SubwayManager man1 = new SubwayManager(passengers);
for (int i = 0; i < passengers.length; i++) {
passengers[i] = new Passenger("nomee", "12", "2011-10-02");
passengers[i] = new Passenger("nomee2", "1", "1957-10-02");
passengers[i] = new Passenger("nomee2", "0", "19-101-02");
passengers[i] = man1.createPassenger("name", "3", "1997-10-02");
passengers[i] = man1.createPassenger("name", "3", "1997-10-02");
}
}
}
乘客类:
public class Passenger {
private String name;
private String nif;
private String birthDate;
private Trip[] tripsLog;
private boolean student;
public Passenger(String name, String nif, String birthDate) {
if (name != null || name != "") {
if(isDateValid(birthDate)) {
this.name = name;
this.nif = nif;
this.birthDate = birthDate;
this.student = false;
this.tripsLog = new Trip[10];
}
else{
System.out.println("Birth Date formatt should be: yyyy-MM-dd");
}
}
}
public boolean isDateValid(String bDate) {
if(bDate != null){
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
try {
LocalDate.parse(bDate, formatter);
return true;
} catch (DateTimeParseException e) {
return false;
}
}return false;
}
【问题讨论】:
-
我认为您不需要在
main中使用for循环。输入数字:passengers[0] = new Passenger("nomee", "12", "2011-10-02");等 -
您需要向我们展示
SubwayManager代码。passengers[i] = new Passenger("nomee2", "0", "19-101-02");是您插入数组的唯一值,我怀疑它后面的 2 行对数组内容没有任何影响,而前面的 2 行无关紧要,因为passengers[i] = new Passenger("nomee2", "0", "19-101-02");是在索引处插入的一、