Я делаю оператор throw IllegalArgumentException
в своем классе конструктора моего класса, чтобы проверить, больше ли возраст ввода пользователя, чем хотел maxAge
.Я использую операторы if для выдачи пользователю IllegalArgumentException
, если введенный возраст выше, чем maxAge
.Ошибка, которую дает мне IDE, это java.lang.NullPointerException
.
. Я пытался объявить и присвоить значения вне оператора if, например
int timePeriod = (Period.between(bday, LocalDate.now()).getYears());
int maxAge = 101;
, чтобы проверить, все ли я получаю ошибку,похоже, что проблема в операторе periods.between >> getYear
.
Код:
public Instructor(String fname, String lname, int ID, String road, String cty, String postalCode, LocalDate reg, LocalDate bDay) throws IllegalArgumentException
{
int timePeriod = (Period.between(bday, LocalDate.now()).getYears());
int maxAge = 101;
System.out.print(timePeriod);
//if (101 < (Period.between(bday, LocalDate.now()).getYears())) {
if (maxAge < timePeriod) {
throw new IllegalArgumentException("Please check the year entered, instructor cannot be over 100 years old.");
}
else {
this.first = fname;
this.last = lname;
this.instructID = ID;
this.address = road;
this.city = cty;
this.postCode = postalCode;
this.regDate = reg;
this.bday = bDay;
}
}