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,这正是我希望从当前代码中得到的结果。

08-27 16:56