[英]Handling one-to-many relationship using ArrayList
我正在努力在我的小型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;
}
}
我敢打賭你的崩潰是NullPointerException
。
發生這種情況是因為在您的Parent
類中:
children
List
初始化為實例語句 children
List
引用重新分配為null
( 此后通過編程方式調用)-請參見代碼: this.children = null; // to remove
this.children = null; // to remove
因此,一旦調用addChild
方法,便試圖add
參數add
到null
List
this.children = null;
是您的問題,請將其刪除,然后嘗試
它在您的add方法中導致NullPointerException
刪除此行: this.children = null;
您要清除在此處創建的ArrayList:
public List<Child> children = new ArrayList<Child>();
您正在使用字段初始化程序和構造函數初始化。 注釋掉這一行:this.children = null;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.