Добавление нового объекта в ArrayList, который является атрибутом другого класса - PullRequest
0 голосов
/ 16 февраля 2019

Я получаю сообщение об ошибке при попытке добавить новый объект в ArrayList, который является атрибутом другого класса.Позвольте мне объяснить.

UML

У меня есть 2 класса в моей модели:

  1. Equipo
  2. Jugador

Чтобы упростить вещи, назовем Equipo -> Team & Jugador -> Player.

Для каждой команды будет несколько игроков, поэтому я создал ArrayList типа Player в качестве атрибутав командном классе.

  1. Экипо

    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. Джугадор

    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://imgur.com/a/Fc6ehlu

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

1 Ответ

0 голосов
/ 16 февраля 2019

Если вы не добавили хотя бы команду в ArrayList, вы вызываете getListaJugadores для нулевого объекта.Фактически, если ArrayList listaEquipos пуст, вы вернете null при вызове метода listaEquipos.get(listaEquipos.size() -1).У вас должна быть хотя бы одна команда, чтобы получить список игроков!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...