0

この方法は、プレーヤーがホールを完了するときに取ったストローク数を記録することです。ストロークが正常に記録されると、メソッドは true を返します。注意点が 2 つあります: (1) ホールは順番に記録し、1 から開始する必要があります。ホールが順不同で受信された場合、スコアは記録されず、false が返されます (2) ホール番号も有効でなければなりません。1 未満またはコース上のホール数より大きいホールのスコアを記録することはできません。コードは java.lang.NullPointerException を返します。これはどういう意味ですか、どうすれば修正できますか

注:holesPlayed は、値 0 が割り当てられたインスタンス変数です。

ここに私が持っているものがあります:

public boolean recordStrokes(int holeNumber, int strokes) {
    if ((holeNumber >= 1) && (holeNumber <= Course.NUM_OF_HOLES) 
        && (holeNumber == holesPlayed + 1)) {
        scores[holeNumber -1] = strokes;
        holesPlayed = holesPlayed + 1;
        return true;
     } else {
        return false;
     }
}
4

1 に答える 1

0

holeNumber1 が渡されるとholesPlayed0 になるので、これは失敗します: holeNumber <= this.holesPlayed.

于 2013-03-24T02:41:59.330 に答える