java.lang.NullPointerException
-
Ich habe eine Klasse Holder und eine Klasse Data. Die Klasse Holder enthält u.a. einen public Vector v der Data-Elemente speichern soll.
Wenn ich dann in meinem main Programm folgendes macheholder..v.addElement(new Data());
bekomme ich zur Laufzeit stets folgenden Fehler in der Zeile:
java.lang.NullPointerException
...
Exception in thread "main"Bin für jeden Tipp dankbar
-styler.
-
Hi
Kann es sein das du vieleich vergessen hast das Vector Object zu erzeugen.
Vector v = new Vector(); v.addElement(new Data());
So müsste das auf jeden fall funktionieren..
BYE
-
Hi,
genau das wars - danke!
Ich hatte nurVector v;
in meiner Klasse stehen. Allerdings habe ich noch einen Default-Konstruktor geschrieben, der dann das Vector Objekt erzeugt (wie von dir beschrieben). Kannst du mir vielleicht noch sagen, warum das nich ging...?
Thx, styler.
-
Also folgendes.
Wenn du nun folgendes schreibst.
Vector v;
Dann legt du nur eine Referenz mit dem Namen v an der auf ein Vector Object zeigen kann.
Das bedetuet du reserviert nur ein speicherplatz aber im speicher steht aber nichts drinne (kein Object zumindestens).
Wenn du jetzt versucht auf das Object zu zugeifen dann bekommst du eine NullPointerException, bedeutet nur das deine Referenz auf einen NULL wert zeigt.
Um Methoden von Objekten zu verwenden muss man schon die Objecte erzeugen und das geht nur mit dme new Operator(ausser man hat eine Factory Pattern oder Builder Pattern).
Es gibt auch Methoden die man nutzen kann ohne ein Objekt vorher zu erzeugen.
Das sind dann die statishen Methoden die erkennt man dadran das sie folgendermassen definiert werden.public static void macheIrgendwas(){ //hier kommt bla bl bl bla }
Sollte eigentlich für den anfang reichen.
BYE