2014-01-08 102 views
2

这可能是一个真正的小问题,但我认为我会在这里抓住机会。即使它不符合条件,仍然会抛出异常

所以基本上我必须做出一个任务,并不言而喻如下:

我要创建一个构造函数,但变量“NAAM”不能为空或空(“”),变量“geboortedatum “不可能在将来,也不可能与今天的日期相同,最后一个变量”boeken“与变量”naam“具有相同的要求(因为它不能为空或”“)。

所以这就是我的构造函数的样子,我只能编辑这个部分,因为另一部分是我们的老师给出的,不能被编辑。

 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; 
    } 

它一直抛出我的第一个异常,我不明白为什么。这可能是一个非常愚蠢的问题,但我似乎无法找出原因。

任何帮助将不胜感激,谢谢提前

回答

8

您正在测试this.naam,这是该类的实例数据成员。如果这是在你说的构造函数中,那么除非你有一个初始化器,否则它可能是null

你可能意味着要测试naam,参数的构造器:

if (naam == null || naam.equals("")) { 
// ^---------------^------------------ no `this.` here 
    throw new IllegalArgumentException("Fill in name"); 
} else { 
    this.naam = naam; 
} 

,类似的还有geboortedatumboeken

+1

+1你打了我一秒:) –

+0

我现在觉得很无聊:( – Glenndisimo

+1

@Glenndisimo:我们都做了类似的事情,有时候。:-) –

相关问题