这可能是一个非常棒的问题,但我想我会抓住机会。
所以基本上我必须做一个任务,它如下:
我必须创建一个构造函数,但变量“naam”不能为null或为空(“”),变量“geboortedatum”不能在将来也不能与今天和日期相同最后一个变量“boeken”与变量“naam”具有相同的要求(因为它不能为null也不能为“”)。
所以这就是我的构造函数的样子,我只能编辑这部分,因为另一部分由我们的老师提供,无法编辑。
if (this.naam == null || this.naam.equals("")) {
throw new IllegalArgumentException("Fill in name");
} else {
this.naam = naam;
}
Date vandaag = new Date();
if (this.geboorteDatum >= vandaag.getTime()) {
throw new IllegalArgumentException("Date must be in the past");
} else {
this.geboorteDatum = geboortedatum;
}
if (this.boeken == null || Arrays.toString(boeken).equals("")) {
throw new IllegalArgumentException("Can't be empty");
} else {
this.boeken = boeken;
}
它不断抛出我的第一个异常,我无法弄清楚原因。这可能是一个非常愚蠢的问题,但我似乎无法找出原因。
任何帮助都会非常感谢,提前谢谢
答案 0 :(得分:8)
您正在测试this.naam
,它是该类的实例数据成员。如果这是在你所说的构造函数中,那么除非你有一个初始化器,它可能是null
。
你可能想要测试naam
,构造函数的参数:
if (naam == null || naam.equals("")) {
// ^---------------^------------------ no `this.` here
throw new IllegalArgumentException("Fill in name");
} else {
this.naam = naam;
}
同样适用于geboortedatum
和boeken
。