Fehlermeldung java.lang.NullPointerException

Fether7

Mitglied
Hallo 🙂,
wir haben eine Aufgabe bekommen und die habe ich auch bearbeitet, aber beim ausführen kommt die Fehlermeldung "Exception in thread "main" java.lang.NullPointerException".
Und ich finde nicht wo genau im Code der Fehler liegt
[CODE lang="java" title="Das ist die erste Datei"]public class Medizingeraet {
private String name;
private String typ;
public Medizingeraet(String name, String typ){
this.name = name;
this.typ = typ;
}
public String getName(){
return name;
}
public String getTyp(){
return typ;
}
}[/CODE]

[CODE lang="java" title="Das ist der zweite Code mit dem Fehler"]public class Operationssaal {
private String name;
private int raumnummer;
private Medizingeraet[] geraete = new Medizingeraet[2];
public Operationssaal(String name, int raumnummer, Medizingeraet[] geraete){
this.name = name;
this.raumnummer = raumnummer;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getRaumnummer(){
return raumnummer;
}
public void zeigeGeraete(){
for (int i = 0; i < geraete.length; i++){
if(geraete.getName() != null)
System.out.println(geraete.getName() + ": " + geraete.getTyp());
}
}
public boolean istVollstaendig(){
for (int i = 0; i < geraete.length; i++){
if (geraete.getName() == null)
return false;
}
return true;
}
}[/CODE]

Spezifisch wird gesagt, dass es bei Operationssaal ist, jedoch erkenne ich ihn nicht.
Zum Kontext der Aufgabe: zeigeGeraete() soll geraete Namen und Typ ausgeben und istVollständig soll true ausgeben wenn genau zwei Geraete vorhanden sind.

Der Code ist in einem bestimmten Editor geschrieben also brauch der Code keine Main Methode.

Danke schonmal für die Hilfe 🙂
 
Trotztdem wäre es gut die Main Methode zu kennen.
Sonst ist es schwer den Fehler zu finden
Eine Möglichkeit wäre diese Zeile:
Java:
 if(geraete[i].getName() != null)
Da prüfst du zwar den String auf null, aber wenn das MedezinGeräte Objekt null ist, bekommst du trotztdem eine Nullpointerxception.
Nullpointerxception liegt immer darann das du auf Member eines Objekts zugreifen möchtest, die null sind
 
Trotztdem wäre es gut die Main Methode zu kennen.
Sonst ist es schwer den Fehler zu finden
Eine Möglichkeit wäre diese Zeile:
Java:
 if(geraete[i].getName() != null)
Da prüfst du zwar den String auf null, aber wenn das MedezinGeräte Objekt null ist, bekommst du trotztdem eine Nullpointerxception.
Nullpointerxception liegt immer darann das du auf Member eines Objekts zugreifen möchtest, die null sind
Ok danke erstmal. Ich habe jetzt einfach das getName weggelassen und es kommt die Fehlermeldung nicht mehr( weiß nicht ob das sinnvoll ist) Die Methode wird zwar nicht ausgeführt aber immerhin existiert der Fehler nicht mehr.
 
Java:
    private String name;
    private int raumnummer;
    private Medizingeraet[] geraete = new Medizingeraet[2];

    public Operationssaal(String name, int raumnummer, Medizingeraet[] geraete){
        this.name = name;
        this.raumnummer = raumnummer;
    }

Die Geräte, welche im Konstruktor übergeben werden, werden niemals der Instanzvariablen zugewiesen. Dadurch ist die Instanzvariable immer ein Array mit 2 null Elementen. Bei Aufruf von if (geraete[i].getName() == null) versuchst du als Resultat getName() von null aufzurufen, was zu der Exception führt.
 
Java:
    private String name;
    private int raumnummer;
    private Medizingeraet[] geraete = new Medizingeraet[2];

    public Operationssaal(String name, int raumnummer, Medizingeraet[] geraete){
        this.name = name;
        this.raumnummer = raumnummer;
    }

Die Geräte, welche im Konstruktor übergeben werden, werden niemals der Instanzvariablen zugewiesen. Dadurch ist die Instanzvariable immer ein Array mit 2 null Elementen. Bei Aufruf von if (geraete[i].getName() == null) versuchst du als Resultat getName() von null aufzurufen, was zu der Exception führt.
Ah okay vielen Dank. Habe es jetzt mit this.geraete = geraete; gemacht und es hat zumindest das Richtige herausgegeben. 🙂
 

Zurück
Oben