NullPointerException

Bitte aktiviere JavaScript!
Guten Tag,

ich schreibe gerade ein kleines Krankenhausprogramm.
Ich erhalte eine NullPointerException doch ich komme einfach nicht auf den Fehler.
Der Fehler liegt wohl in der Methode listeZusammen().
Ich bin ein bisschen überfragt, da ich nichts mit NULL deklariert habe. Also müsste etwas bei Methodenaufruf schieflaufen. Ich weiß bloß nicht was und bitte um eure Hilfe.

Java:
public class Qualitätsmanagement implements Observer {

    Scanner scan = new Scanner(System.in);
   
    ArrayList <String> Aufnahmeliste = new ArrayList<String>(); //Liste um PatientID & Aufnahmedatum zu speichern
    ArrayList <String> Entlassungsliste = new ArrayList<String>(); //Liste um PatientID und Entlassungsliste zu speichern    
   
    ArrayList[] listen = new ArrayList[] {Aufnahmeliste, Entlassungsliste}; //zusammengeführte Liste
   
    String id1;
    String id2;
    String date1; //Aufnahme
    String date2;    // Entlassung
   
    /**
     * Methode für die Aufnahme des Patienten.
     * Fragt ID & Aufnahmedatum ab.
     */
    public void listeErstellen() {
       
    System.out.println("PatientID?");
    String scan1 = scan.nextLine();
    id1 = scan1;
    System.out.println("Aufnahmedatum?");
    String scan2 = scan.nextLine();
   
    date2 = scan2;
   


    Aufnahmeliste.add(new String("P" + id1 + "; " + date2 ));
   
    }
   
    /*
     * Methode fragt per Benutzereingabe die PatientenId und dasEntlassungsdatum ab
     */
    public void listeVollständig() {
       
        System.out.println("PatientenID?");
        String scan3 = scan.nextLine();
       
        id2 = scan3;
       
        System.out.println("Entlassungsdatum?");
        String scan4 = scan.nextLine();
       
        date2 = scan4;
       
        Entlassungsliste.add(new String(id2 + "; " + date2));
    }
   
    public String getScan3() {
        return id2;
       
    }
   
    public String getScan1() {
        return id2;
    }
    public String getScan4() {
        return date2;
    }

    /*
     * Methode geht beide Listen durch und prüft auf gleiche
     * PID. Die PID das Aufnahmedatum & Entlassungsdatum aus
     */
    public void listenZusammen() {
        if(id1.equals(id2)) //Wenn Patientennr bei beiden Eingaben gleich ...        //HIER WIRD DER FEHLER ANGEZEIGT
        {
           
            for(int i = 0; i < Aufnahmeliste.size(); i++)
                for (int j = 0; j < Entlassungsliste.size(); j++) {
                   
               
            {
                System.out.println(Aufnahmeliste.get(i) + "; " + getScan4() );
                }
            }
       
        }
    }

   
    @Override
    public void update(Observable o, Object arg) { //ignorieren
        // TODO Auto-generated method stub
       
    }

}
Hier der zugehörige Case in der Menü Klasse.
Java:
case 10:
            Qualitätsmanagement quali2 = new Qualitätsmanagement();
            quali2.listeVollständig(); //fügt beide ArrayListen zusammen
           
            Logger neuerLogger = Logger.getInstance();
           
            System.out.println(neuerLogger.log("Patient ID - Aufnahmedatum - Entlassungsdatum"));
           
            quali2.listenZusammen(); // gibt Liste aus
           
            break;

Anmerkung: Wenn ich den Case direkt in der Main Aufrufe funktioniert das Programm.
 
Zuletzt bearbeitet:
Das Attribut "id1" wird in der Methode "listeErstellen" gesetzt und ist davor null. Und die Methode wird für das Objekt "quali2" nie aufgerufen. Deswegen fliegt es dann bei "id1.equals(id2)".

Wenn du den Code innerhalb des Case-Blocks so in der Main ausführst wird auch der gleiche Fehler fliegen.

Und nochmal ein paar Tipps:

- Man sollte immer gegen die Schnittstelle programmieren. Also statt:
Java:
ArrayList<String> aufnahmeliste = new ArrayList<>();
dann
Java:
List<String> aufnahmeliste = new ArrayList<>();
schreiben.
- Anstatt Umlaute wie ä,ö etc. lieber ae, oe ... schreiben
- Variablennamen kleinschreiben
 
Zuletzt bearbeitet:
Vielen Dank!

Ich habe die Methoden mit 2 verschiedenen Objekten aufgerufen das war es. Danke!
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben