java如何引用将对象添加到对象内部的ArrayList
在JavaFX中,我创建了一个运动跟踪系统
我的对象用户有许多食物和练习,它们存储为ArrayList
public class User {
private ArrayList<Food> listofFood = new ArrayList<Food>();
private ArrayList<Exercise> listofExercise = new ArrayList<Exercise>();
private String um;
public User(String u) {
this.um = u;
}
public void addNewFood(Food f) {
listofFood.add(f);
}
public void addNewExercise(Exercise ex) {
listofExercise.add(ex);
}
}
食物和运动在结构上是相似的
public class Food {
private String name;
public Food(String n) {
this.name = n;
}
public void setNameFood(String n) {
this.name = n;
}
}
在我的MainApp类中,我创建了一个用户
public class MainApp {
public User UserLoggedIn;
}
我使用控制器传入这个类的一个实例
public class MainApp {
MyController c = loader.getController();
c.setDialogStage(dialogStage);
c.setApp(this);
}
在MyController类中,我设置了应用程序
public class MyController {
public void setApp(MainApp app) {
this.mainApp = app;
}
}
。。。然后我在MyController中引用了它
public class MyController {
mainApp.UserLoggedIn.addNewFood((new Food(nameField.getText())));
}
这会产生空指针异常
# 1 楼答案
UserLoggedIn从未实例化,因此它将始终为null。为MainApp()创建一个默认构造函数,该构造函数只创建用户对象。然后创建一个名为getUser()的getter方法,该方法返回用户对象。此外,Java的惯例是使用camel case。所以,UserLoggedIn应该是UserLoggedIn