数组:java.lang.NullPointerException

L3V*_*3V0 -1 java arrays nullpointerexception

我做错了什么?我认为这是因为阵列.行号现在不正确,因为我不得不将文字缩短一点,对不起.

Exception in thread "main" java.lang.NullPointerException
    at Team.<init>(Team.java:43)
    at Team.main(Team.java:30)
Run Code Online (Sandbox Code Playgroud)

码:

public static void main(String[] args) 
{
    System.out.println("Dein Fußballteam in der ersten Bundesliga!");

    int[] Spieler = new int[20];
    int Torschützen[] = new int[10];  

    Team myTeam = new Team();
    myTeam.einfacheNachricht();
}

public Team() 
{
    TeamSpieler = new Spieler[20];
    Scanner team = new Scanner(System.in);
    for (int i=0; i<20;i++){
        System.out.println("Bitte geben Sie den Namen des Spielers " + i + " ein: ");
        TeamSpieler[i].Name = team.nextLine();
        System.out.println("Bitte geben Sie das Alter des Spielers " + i + " ein: ");
        TeamSpieler[i].Alter = team.nextInt();
        System.out.println("Bitte geben Sie die Tore des Spielers " + i + " ein: ");
        TeamSpieler[i].Tore = team.nextInt();
    }
    System.out.println("Bitte geben Sie den Namen ihres Teams ein: ");
    Teamname = team.nextLine();
              team.close();
}
Run Code Online (Sandbox Code Playgroud)

Kep*_*pil 5

这一行:

TeamSpieler = new Spieler[20];
Run Code Online (Sandbox Code Playgroud)

不创建20Spieler的,它只创建20 Spieler引用,初始化为null.

为了避免NullPointerExceptions,你需要做

TeamSpieler[i] = new Spieler();
Run Code Online (Sandbox Code Playgroud)

为每个人i.

另外,请遵循Java编码标准,变量名称应以小写字母开头.