我在我的小型android项目中努力使用一对多的关系。我已经解决了这个问题(我正在学习java)。尝试将子对象添加到父对象时,我的程序崩溃。我花了一些时间来解决它。我需要很少的支持才能回到正轨。感谢。
public class Master {
public static void main(String[] args) {
Parent big;
big = new Parent("aParent");
big.addChild(new Child("c1"));
big.addChild(new Child("c2"));
for (Child ch : big.getChildren()) {
System.out.println(ch.toString());
}
}
}
public class Parent {
public String name;
public List<Child> children = new ArrayList<Child>();
public Parent(String name) {
// TODO Auto-generated constructor stub
this.name = name;
this.children = null;
}
public void addChild(Child c) {
this.children.add(c);
}
public List<Child> getChildren() {
return children;
}
}
public class Child {
public String name;
public Child(String s) {
this.name = s;
}
public String toString() {
return name;
}
}
答案 0 :(得分:3)
我打赌你的崩溃是NullPointerException
。
这是因为,在您的Parent
班级中:
children
List
初始化为实例声明children
List
对null
的引用(在后以编程方式称为) - 请参阅您的代码: this.children = null; // to remove
因此,一旦调用了addChild
方法,您就会尝试将add
参数设为null
List
答案 1 :(得分:1)
this.children = null;
是您的问题,请将其删除,然后尝试
它会在你的add方法
中导致NullPointerException答案 2 :(得分:1)
删除此行:this.children = null;
您正在消灭您在此处创建的ArrayList:
public List<Child> children = new ArrayList<Child>();
答案 3 :(得分:0)
您正在使用字段初始值设定项和构造函数初始化。注释掉这一行: this.children = null;