【发布时间】:2017-04-16 05:46:49
【问题描述】:
我一直在尝试为朋友制作游戏,但我无法让我的线路 player[i].setName(getName(pn)); 在课堂 Players 正常工作。我希望能够在列表中设置或更改玩家的姓名。但我一直在这条线上遇到错误。这发生在我将 Player 类中的 public 变量从 static 更改之后。
“线程“主”中的异常 java.lang.NullPointerException 在 worldhomicide.drinkinggame.PlayerInfo.Players.setPlayers(Players.java:16) 在 worldhomicide.drinkinggame.main.Game.main(Game.java:25)"
任何帮助将不胜感激!我在下面发布了所有需要的代码。
游戏类
public class Game{
public static void main(String[] args) {
MessageHandler.gameRules(); // Display Game Information
Players.getAmount();Players.setPlayers(); // Get player data
System.out.println("What player would you like to look up?");
int choice = Integer.parseInt(EventHandler.keyboard.next()); choice -= 1;
System.out.println(Players.player[choice].name);
}
}
玩家类
public class Players extends EventHandler {
public static int playerAmount;
public static Player[] player;
public static void setPlayers(){
player = new Player[playerAmount];
for(int i = 0; i < player.length; i++){
int pn = i+1;
player[i].setName(getName(pn));
}
}
public static void getAmount(){
MessageHandler.playerAmount();
playerAmount = Integer.parseInt(keyboard.next());
}
}
类事件处理程序
public class EventHandler {
public static Scanner keyboard = new Scanner(System.in);
public static String getName(int playerNumber){
System.out.println("What is player " + playerNumber + "'s name?");
String name = keyboard.next();
return name;
}
}
播放器类
public class Player {
public String name;
public int score;
public void setName(String name){
this.name = name;
}
}
【问题讨论】:
-
"...我不断收到错误..." -- 如果您不与我们分享错误,您怎么能期望得到任何帮助? edit 您的帖子并包括完整的错误消息和堆栈跟踪(如果适用)。请访问help center 并阅读How to Ask 了解更多信息。
-
worldhomicide.drinkinggame.PlayerInfo.Players.setPlayers(Players.java:16) 的线程“main”java.lang.NullPointerException 中的异常 worldhomicide.drinkinggame.main.Game.main(Game.java :25)
-
不要在 cmets 中发布重要信息。 edit 它进入你原来的问题。
-
任何可以帮助我在对象播放器中编辑变量名的东西。
标签: java arrays variables object methods