Array- cannot invoke "" because "" is null

jakobfritzz

Mitglied
Hey, ich versuche mich kurz zu fassen:
Die Aufgabe ist ein Buchungssystem für Räume zu programmieren, u.a. soll man dort auch Personen in das System einfügen können.
Ich habe das mit einer Liste gemacht wobei die Stelle der Liste übereinstimmt mit der Personen ID.
Jetzt bekomme ich den oben genannten Fehler, wenn ich eine Person hinzufügen möchte.
Hat jemand eine Idee wie ich es besser schreiben kann, oder kann mir sagen wo mein Fehler genau liegt. Falls ihr noch andere Klasen benötigt kann ich die dazu geben.

Java:
public class PersonList {

    public static final short length = 1000;    //maximale personen zahl

    private static Person [] persons = new Person[length];

    public PersonList(){

    }

    public static void addPerson(String role, String firstName, String lastName){
        if(persons[length - 1] == null){        //schauen ob Liste voll ist
            for(int i = 0; i < persons.length; i++){
                if (persons[i] == null){        //schauen ob momentane Stelle frei ist
                    persons[i].setFirstName(firstName);
                    persons[i].setLastName(lastName);
                    persons[i].setId(i);
                    System.out.println(persons[i].getId());
                    break;
                }
            }
        }


    }

}
 
Java:
 if (persons[i] == null){        //schauen ob momentane Stelle frei ist
                    persons[i].setFirstName(firstName);

Wenn persons an der Stelle leer ist, dann hast Du da ja noch kein Objekt.

Das ist also so wie: Wenn der Parkplatz leer ist, dann packe etwas in den Kofferraum. Der Parkplatz ist leer, also kein Auto und damit auch kein Kofferraum.

Keine Person, also auch keine Name, den man setzen kann. So wie Du erst ein neues Auto auf den Parkplatz stellen musst, musst du da erst eine neuen Person erstellen und ins Array packen.
 
Java:
 if (persons[i] == null){        //schauen ob momentane Stelle frei ist
                    persons[i].setFirstName(firstName);

Wenn persons an der Stelle leer ist, dann hast Du da ja noch kein Objekt.

Das ist also so wie: Wenn der Parkplatz leer ist, dann packe etwas in den Kofferraum. Der Parkplatz ist leer, also kein Auto und damit auch kein Kofferraum.

Keine Person, also auch keine Name, den man setzen kann. So wie Du erst ein neues Auto auf den Parkplatz stellen musst, musst du da erst eine neuen Person erstellen und ins Array packen.
Auch Danke, habe es gemacht und es hat funktioniert. Dachte das passiert schon bei der erstellung des Arrays, aber es ist logisch dass dies nicht der Fall ist. Danke für die Schnelle Hilfe
 

Zurück
Oben