大家好,我正在尝试从另一个类向 ArrayList 添加对象,但我有一个 java.lang.NullPointerException。这是我的代码。
sudo apt install mono-devel
public class MLD {
private ArrayList<Entity> entityList;
public MLD() {
this.entityList = entityList;
}
public ArrayList<Entity> getEntityList() {
return entityList;
}
public void setEntityList(ArrayList<Entity> entityList) {
this.entityList = entityList;
}
}
我在主要测试它是这样的:
public class MLDManaging {
private MLD mld;
public MLDManaging() {
this.mld = new MLD();
}
public void addEntity(Entity e1) {
mld.getEntityList().add(e1);
}
}
提前致谢
答案 0 :(得分:2)
您需要在构造函数this.entityList = new ArrayList<>();
中初始化列表,如下所示
public class MLD {
private ArrayList<Entity> entityList;
public MLD() {
this.entityList = new ArrayList<>();
}
public ArrayList<Entity> getEntityList() {
return entityList;
}
public void setEntityList(ArrayList<Entity> entityList) {
this.entityList = entityList;
}
}
答案 1 :(得分:0)
您尚未初始化 MLD
类中的列表。
更好的方法是创建一个单独的方法来添加到列表中,而不是调用 getter
方法然后调用 add
。(这不是一种干净的代码方法)
public class MLD {
private ArrayList<Entity> entityList;
public ArrayList<Entity> getEntityList() {
return entityList;
}
public void addEntity(Entity entity) {
if(entityList == null) {
// list would be initialized only when required.
// This would help reduce unwanted memory usage.
entityList = new ArrayList<>();
}
entityList.add(entity);
}
}
注意:我不确定您为什么创建 MLDManaging
类。但如果只是将实体添加到MLD
对象的列表中,那么我建议删除MLDManaging
类。