Hallo Leute,
ich drehe durch. Ich bekomme beim Programmstart eine Null-Pointer-Exception geworfen.
Das Problem ist eine Liste. Wenn ich diese nun
so deklariere und in der Main ein Objekt der beispielKlasse erzeuge, ist alles fein.
Wenn ich das aber über einen Konstruktor mache, dann ist die Liste null.
Sollte ich also automatisch immer eine neue ArrayList erzeugen lassen, wenn ein Objekt der Beispielklasse erzeuge oder wie verhindert man die Exception sonst so (Stichwort "guter Code")? Kümmert sich dann der Garbage-Collector darum, wenn ich das später nicht mehr brauche?
Wenn die Liste null ist, ist das Programm jedenfalls nicht lauffähig, also hier habe ich entweder ein tiefsitzendes Designproblem oder zu viel Angst, einfach die = new ArrayList(); einzusetzen.
Kann mir da jemand einen Tipp geben?
ich drehe durch. Ich bekomme beim Programmstart eine Null-Pointer-Exception geworfen.
Das Problem ist eine Liste. Wenn ich diese nun
Java:
public class Beispielklasse {
List beispielListe = new ArrayList();
//Variablen & Methoden sind hier nicht weiter relevant
}
Wenn ich das aber über einen Konstruktor mache, dann ist die Liste null.
Code:
public class Beispielklasse {
List beispielListe;
public Beispielklasse(){
beispielListe = new ArrayList();
}
// und sie ist auch null bei
public Beispielklasse (BeispielObjekt objekt){
beispielListe = new ArrayList();
beispielListe.add(objekt);
}
//weil ich beim Programmstart noch kein BeispielObjekt habe, das soll nämlich der Nutzer über ein UI erzeugen
//und dann hätte ich auch wieder diese hässliche static-Kacke in der Main.
}
Sollte ich also automatisch immer eine neue ArrayList erzeugen lassen, wenn ein Objekt der Beispielklasse erzeuge oder wie verhindert man die Exception sonst so (Stichwort "guter Code")? Kümmert sich dann der Garbage-Collector darum, wenn ich das später nicht mehr brauche?
Wenn die Liste null ist, ist das Programm jedenfalls nicht lauffähig, also hier habe ich entweder ein tiefsitzendes Designproblem oder zu viel Angst, einfach die = new ArrayList(); einzusetzen.
Kann mir da jemand einen Tipp geben?