java - 初始化列表班组内
问题描述
当我设法从 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);
}
}
解决方案
您的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 构建器时,请参阅这些问题以正确初始化集合:
推荐阅读
- mongodb - Azure Cosmos DB MongoDB API 4.0 事务功能不适用于“spring-boot-starter-data-mongodb”
- angular - Angular 12 Schematics 引发有关所需属性的错误
- javascript - ReactJS 使用表单获取外部图像作为输入
- flutter - 向其他类发送数据在颤振飞镖中为空
- python - 使用 Selenium 将鼠标悬停在元素上
- reactjs - 删除由其他用户创建的 Firestore 文档
- python-3.x - Pandas:减去两个不匹配的数据帧
- c# - UWP - NavigationViewItem - 切换页面
- aggregation - Spotfire 中的自定义聚合
- xml - 如何在 Odoo 13 中对同一模型使用多个表单