public void display(Date date) {
boolean loop = true;
System.out.println("Events on " + date.toString());
for (int i = 0; i < schedule.length; i++) {
while (loop) {
Date tmp = schedule[i].nextOccurrence();
if (tmp.compareTo(date) == 0) {
System.out.println(schedule[i].nextOccurrence().toString());
}
}
schedule[i].init();
}
}
如果事件發生在給定方法的日期,上面應該打印出事件的發生。 nextOccurrence方法抓取下一次事件(如果是每週或每天)。 nextOccurence看起來像這樣的DailyEvent:JAVA在「if」語句中獲取空指針異常?
public Date nextOccurrence() {
if (timesCalled == recurrences) {
return null;
}
else {
Calendar cal = Calendar.getInstance();
cal.setTime(startTime);
cal.add(Calendar.DATE, timesCalled);
timesCalled++;
return cal.getTime();
}
}
我打電話安排[I]的.init()重置(每日事件有時間,他們可以被稱爲數量的限制的時候叫0數,記作爲具有可變重複性的整數)。
基本上,我的問題是,我得到一個NullPointerException這條線:
if (tmp.compareTo(date) == 0) {
我嘗試了一切,我完全失去了。 任何幫助將是偉大的!
如果您最後一次發生計劃會發生什麼? 'nextOccurrence()'返回什麼? – Oded 2011-02-26 20:45:52
看來nextOccurrence必須返回null,這發生在timesCalled == recurrences時,只需在if語句之前放置一個println以準確找出什麼是null。 – 2011-02-26 20:46:44
if(timesCalled == recurrences){return null;} – n0pe 2011-02-26 20:46:52