首页 > 解决方案 > 初始化列表班组内

问题描述

当我设法从 Teams 类(将其存储List<Players>在其中)召回构造函数时是 obvs null。我在哪里填充该列表?我需要在 Players 类中填充它吗?还是在 Team 类中?

我最近正在使用 Spring。

我将留下 3 类的示例。Squadre 表示团队,Giocatori 表示球员。(使用龙目岛)

    public class Squadra {
    
        private String nomeSquadra;
    
        private List<Giocatori> rosaAttuale;
        private int goalFatti;
        private int goalSubiti;
        private int differenzaReti;
        private int posizioneInCampionato;
        private double valoreRosa;
    
        public void addGiocatori(Giocatori g) {
            rosaAttuale.add(g);
        }
    
        public void removeGiocatori(Giocatori g) {
            rosaAttuale.remove(g);
        }
    
    }


    public class Giocatori {
    
        String nomeGiocatore;
        String cognomeGiocatore;
        int eta;
        int numeroMaglia;
    
        public Giocatori() {
    
        }
    
    }

    @Component
    public class SquadreRepo {
    
        @Getter
        private List<Squadra> dataBaseSquadre = new ArrayList<Squadra>();
    
        public SquadreRepo() {
    
            dataBaseSquadre.add(new Squadra(null, null, 0, 0, 0, 0, 0))
            
        }
    
        public void addSquadra(Squadra s) {
            dataBaseSquadre.add(s);
        }
    
        public void removeSquadra(Squadra s) {
            dataBaseSquadre.remove(s);
        }
    }

标签: javaspringlist

解决方案


您的Squadra类的玩家rosaAttuale列表从未在上面的代码中初始化。您通过调用构造函数在SquadreRepo中初始化您的团队

dataBaseSquadre.add(new Squadra(null, null, 0, 0, 0, 0, 0))

第二个参数大概是rosaAttuale列表(假设构造函数是使用 Lombok 生成的),因此您的列表为,并且您永远无法添加任何玩家。相反,尝试用一个空列表来初始化它,例如:

dataBaseSquadre.add(new Squadra(null, new ArrayList<>(), 0, 0, 0, 0, 0));

在使用 Lombok 构建器时,请参阅这些问题以正确初始化集合:


推荐阅读