簡體   English   中英

長度為1的數組上的NullPointerException初始化

[英]NullPointerException on array with length one initializing

這是我的updateHighScoreRecords()方法:

    public GameRecord[] updateHighScoreRecords(GameRecord[] highScoreRecords, String name, int level, int score) {
    GameRecord[] gameRecord = null;

    if (highScoreRecords.length == 0) {     // Rule one
        gameRecord = new GameRecord[1];
        gameRecord[0].setName(name);
        gameRecord[0].setLevel(level);
        gameRecord[0].setScore(score);
        System.out.println("Role one Done");
    }
    return gameRecord;
}

這是我的GameRecord類:

public class GameRecord {
private String name;
private int level;
private int score;

public GameRecord(String name, int level, int score) {

    this.name = name;
    this.level = level;
    this.score = score;
}
public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
public int getLevel() {
    return level;
}
public void setLevel(int level) {
    this.level = level;
}

public int getScore() {
    return score;
}

public void setScore(int score) {
    this.score = score;
}
}

但是這一行有一個nullPointer異常:

gameRecord[0].setName(name);

為什么?

highScoreRecords長度為零時,我想返回一個GameRecord類型的數組。

您從未初始化第零個元素。 首先,您必須在零位置添加元素,然后訪問它。

 gameRecord[0] = new GameRecord();
 gameRecord[0].setName(name);

當你寫

  gameRecord = new GameRecord[1];

這意味着您只是初始化一個數組來存儲2個GameRecord元素。 沒有其他的。 最初,這些是null 您需要初始化每個元素以進一步使用它們。 否則,它們仍然為null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM