Hallo zusammen,
ich bearbeite den folgenden Code, um eine kleine "Familie" mithilfe eines Custom-Arrays zu erstellen. Es gibt Eltern Sven und Silke, deren Kinder Tina und Theo sind. Der Code sollte Tina und Theo in der Kinder-Array eintragen in der Sven und Silke als Vater und Mutter identifiziert sind. Beim Ausführen wirft es NullPointerException: Cannot read the array length because "this.Kinder" is null. Vielleicht kann jemand mir eine Hilfestellung geben?
ich bearbeite den folgenden Code, um eine kleine "Familie" mithilfe eines Custom-Arrays zu erstellen. Es gibt Eltern Sven und Silke, deren Kinder Tina und Theo sind. Der Code sollte Tina und Theo in der Kinder-Array eintragen in der Sven und Silke als Vater und Mutter identifiziert sind. Beim Ausführen wirft es NullPointerException: Cannot read the array length because "this.Kinder" is null. Vielleicht kann jemand mir eine Hilfestellung geben?
Java:
package Essen2;
import java.util.Arrays;
public class Person {
String Name;
Person Vater, Mutter;
Person[] Kinder;
void trage_Kind_ein(Person Kind){
Person[] k = this.Kinder; //zum Kindervariablen zwischenspeichern
if(this.Kinder == null){
Kinder = new Person[1];
} else {
Kinder = new Person[k.length-1];
}
for(int i = 1; i < Kinder.length-1; i++){
if(Kinder.length > 0){
Kinder[i] = k[i];
} else { //bei leere Array
System.out.println("wie leer");
break;
}
}
Kinder[Kinder.length-1] = Kind;
}
Person(String Name, Person Vater, Person Mutter){
this.Name = Name;
this.Vater = Vater;
this.Mutter = Mutter;
int i = 0;
while(i < Kinder.length-1){ //NullPointerException: this.Kinder is null
if(Kinder.length > 0){
if(Vater != null){
Vater.trage_Kind_ein(this);
}
if(Mutter != null){
Mutter.trage_Kind_ein(this);
}
} else {
System.out.println("wow how empty");
break;
}
}
}
public static void main(String[] args) {
//Eltern- und Kindervariablen initialisieren
Person silke = new Person("Silke", null, null);
Person sven = new Person("Sven", null, null);
Person tina = new Person("Tina", silke, sven);
Person theo = new Person("Theo", silke, sven);
//Elternvariablen trägen die Kinder in der Arrays
silke.trage_Kind_ein(tina);
sven.trage_Kind_ein(tina);
silke.trage_Kind_ein(theo);
sven.trage_Kind_ein(theo);
//Ausgabe
System.out.println("Silke: Vater = " + silke.Vater + ", Mutter= " + silke.Mutter + ", Kinder=" + Arrays.toString(silke.Kinder));
System.out.println("Sven: Vater = " + sven.Vater + ", Mutter = " + sven.Mutter + ", Kinder= " + Arrays.toString(sven.Kinder));
System.out.println("Tina: Vater= " + tina.Vater + ", Mutter = " + tina.Mutter + ", Kinder= " + Arrays.toString(tina.Kinder));
System.out.println("Theo: Vater= " + theo.Vater + ", Mutter = " + theo.Mutter + ", Kinder = " + Arrays.toString(theo.Kinder));
}
}