簡體   English   中英

將新對象添加到作為另一個類的屬性的 ArrayList

[英]Adding a new object to an ArrayList that is an attribute of another class

嘗試將新對象添加到作為另一個類的屬性的 ArrayList 時出現錯誤。 讓我解釋。

UML

我的模型中有 2 個類:

  1. Equipo
  2. 朱加多爾

為簡化起見,我們稱 Equipo -> Team & Jugador -> Player。

對於每個團隊將有多個玩家,因此我創建了一個 Player 類型的 ArrayList 作為 Team 類中的屬性。

  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. 朱加多爾

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

主要的

在主類中,我創建並初始化了 Teams 和 Players ArrayLists。

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

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

如果您沒有在 ArrayList 中至少放置一個團隊,那么您就是在一個空對象上調用getListaJugadores 事實上,如果 ArrayList listaEquipos為空,您將在調用listaEquipos.get(listaEquipos.size() -1)方法時返回 null。 你必須至少有一支球隊來檢索球員名單!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM