提问人: 提问时间:2/14/2021 更新时间:2/14/2021 访问量:276
将对象从另一个类添加到 ArrayList
Add objects to an ArrayList from another class
问:
大家好,我正在尝试将对象从另一个类添加到 ArrayList,但我有一个 java.lang.NullPointerException。这是我的代码。
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);
}
}
我主要是这样测试的:
MLDManaging m = new MLDManaging();
MLD mld =new MLD();
Entity e1 = new Entity("Entity 1", list1);
m.adde(e1);
m.addEntity(e1);
先谢谢你
答:
2赞
SSK
2/14/2021
#1
您需要在构造函数中初始化列表,如下所示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;
}
}
0赞
Gautham M
2/14/2021
#2
您尚未在类中初始化列表。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
评论