java - 将值设置为对象数组

标签 java class object methods

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); 的名称。我遇到了一个异常(exception)。

我尝试在不知道数组长度的情况下创建多个对象。

也许数组列表和其他方法还有其他可能性,但我在学校,暂时没有看到其他方法。

最佳答案

除了实例化保存它们的数组之外,您还需要实例化每个 Player 对象:

name = Clavier.lireString();
groupe[i] = new Player();     // replace this with actual constructor
groupe[i].setNom(name);

您的代码正在捕获 NullPointerException 这正是我对您当前代码的期望。

关于java - 将值设置为对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33949047/

相关文章:

java - JAVA 中的对象比较...第 2 部分

java - EJB 1.1 和磁盘 io

class - 在类内部访问类

java - 如何使用命令行编译具有多个文件的java

php - 在 &lt;script&gt; 标签中使用 PHP?

javascript - 对象数组的无重复版本

java - 如果任务失败,如何执行 Ant 命令?

java - PhoneGap - 找不到 javac.exe

java - 在 Nifi 中,带有 Hive 数据库连接池服务的自定义处理器不起作用

c# - 为什么 C# 不支持变体泛型类?