将新对象添加到ArrayList,该对象是另一类的属性



尝试将新对象添加到ArrayList时,我会遇到错误,该对象是另一类的属性。让我解释一下。

uml

我的模型中确实有两个类:

  1. Equipo
  2. jugador

简化事情,让我们致电Equipo-> Team&jugador->玩家。

对于每个团队,都会有多个球员,因此我创建了一个类型播放器的数组列表作为团队类中的属性。

  1. Equipo

    public class Equipo {
        private String nombre;
        private LocalDate fechaAlta;
        private String continente;
        private char clasificado;
        private ArrayList <Jugador> listaJugadores; //Muestra la relación 
        public Equipo(String nombre, LocalDate fechaAlta, String continente, char clasificado) {
            this.nombre = nombre;
            this.fechaAlta = fechaAlta;
            this.continente = continente;
            this.clasificado = clasificado;
        }
        .
        .
        .
    }
    
  2. jugador

    public class Jugador {
        private String jugador;
        private int dorsal;
        public Jugador(String jugador, int dorsal) {
            this.jugador = jugador;
            this.dorsal = dorsal;
        }
        .
        .
        .
    }
    

MAIN

在主要班级中,我创建并初始化了团队和玩家阵列。

public static Ventana v1;
public static ArrayList <Equipo> listaEquipos;
public static ArrayList <Jugador> listaJugadores;
public static void main(String[] args) {
    v1 = new Ventana();
    v1.getearComboBox();
    v1.setVisible(true);
    //Inicializar arrays
    listaEquipos = new ArrayList <Equipo>();
    listaJugadores = new ArrayList <Jugador>();

我正在尝试将一个球员添加到阵列中的最后一支球队

public static void inscribirJugador(String nombreJugador, String dorsalString){
        //Conversion del dorsal
        int dorsal = Integer.parseInt(dorsalString);
        listaEquipos.get(listaEquipos.size()-1).getListaJugadores().add(new Jugador("nombreJugador", dorsal));    
}

但是,我遇到了无法解决的nullpoInterException错误。https://i.stack.imgur.com/hqfgw.jpg

第98行:listaEquipos.get(listaEquipos.size()-1).getListaJugadores().add(new Jugador("nombreJugador", dorsal));

如果您没有在数组列表中至少放置一个团队,则在null对象上调用getListaJugadores。实际上,如果ArrayList listaEquipos为空,则将在方法调用listaEquipos.get(listaEquipos.size() -1)上返回null。您必须至少有一个团队来检索球员名单!

最新更新