該方法是記錄玩家在完成一個洞時所用的杆數。當筆畫成功記錄時,該方法返回true。有兩個注意事項:(1)孔必須按順序記錄,並且必須從1開始。如果接收到的孔不合格,則不記錄分數並返回錯誤(2)孔編號也必須有效。您不能記錄小於1或大於課程孔數的孔的分數。在調試我的代碼時,給出一個java.lang.NullPointerException。這是什麼意思,我該如何解決這個問題。記錄高爾夫球杆的方法
注:holesPlayed是分配的0
這裏的值的實例變量是我:
public boolean recordStrokes(int holeNumber, int strokes) {
if ((holeNumber >= 1) &&
(holeNumber <= this.holesPlayed) &&
(holeNumber == holesPlayed + 1
{
scores[holeNumber -1] = strokes;
holesPlayed = holesPlayed + 1;
return true;
}
else {
return false;
}
}
NullPointerException意味着(除別的以外),你試圖訪問你還沒有初始化的變量的值。 – jedwards
我在代碼中更改了某些縮進以使其更清晰,但是看起來您的if語句在條件上存在語法錯誤 - 是否可以仔細檢查您是否正確複製了它? – jedwards
另外,如果'holeNumber'必須是1或者更大,並且'this.holesPlayed'被初始化爲0,那麼這種方法返回'true'是不是不可能?在我看來,你需要刪除你的第二個「如果」條件。 –