ArrayList添加空指针

use*_*146 1 java arraylist

当我尝试调用addPlayer方法时,下面的类一直给我一个空指针,我不知道我做错了什么.:请记住这是非常简单的东西......据说......我正在学习Java.

import java.util.*;

public class Team {

    private String teamName;
    private  ArrayList<Player> players;
    private int numberOfPlayers; 

    public Team(String teamName) {

        this.teamName = teamName;

    }

    public String getName() {

        return this.teamName;

    }

    public void addPlayer(Player player) {
        this.players.add(player);
        }


    public void printPlayers() {

        for (Player player : this.players) {
            System.out.println(player);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是Player类:

public class Player {

    private String name;
    private int goals;

    public Player(String name) {
        this.name = name;
    }

    public Player(String name, int goals) {

        this.name = name;
        this.goals = goals;
    }

    @Override
    public String toString() {

        return this.getName() + ", goals " + this.goals();
    }

    public String getName () {
        return this.name; 
    }

    public int goals() {
        return this.goals; 
    }

}
Run Code Online (Sandbox Code Playgroud)

Rya*_*n J 8

这是你的问题:

private  ArrayList<Player> players;
Run Code Online (Sandbox Code Playgroud)

未初始化,在实例化类时永远不会创建新的.

将以下内容添加到构造函数中:

public Team(String teamName) {

    this.teamName = teamName;
    this.players = new ArrayList<Player>();

}
Run Code Online (Sandbox Code Playgroud)


小智 6

您尚未初始化变量,因此其值为null.

private  ArrayList<Player> players = new ArrayList<Player>();
Run Code Online (Sandbox Code Playgroud)

那应该解决它.