public class Jeux {
public static void main(String [] args) {
int nPlayer= 0;
String name;
boolean ok = false;
Player[] groupe = null;
do {
try {
System.out.print("How many player: ");
nPlayer= Clavier.lireInt();
ok = true;
} catch(NumberFormatException e) {
System.out.println("ERROR, enter a number");
}
} while(!ok);
groupe = new Player[nPlayer];
System.out.println(groupe.length);
for(int i=0; i<groupe.length; i++){
try{
System.out.print("Enter the name of the player " + (i + 1));
name = Clavier.lireString();
groupe[i].setNom(name);
} catch(NullPointerException e) {
System.out.println(e.getMessage());
}
}
}
}
为什么不能为
groupe[i]
-> groupe[i].setNom(nom);
设置名称。我有一个例外。我尝试创建多个对象而不知道数组的长度。
也许数组列表和其他方法还有其他可能性,但是我在学校里,我们暂时没有其他方法。
最佳答案
除了实例化保存它们的数组之外,还需要实例化每个Player
对象:
name = Clavier.lireString();
groupe[i] = new Player(); // replace this with actual constructor
groupe[i].setNom(name);
您的代码捕获了
NullPointerException
,这正是我希望从当前代码中得到的结果。