[英]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.