Java 1.2: was ist eine Null pointer exception?

Ich schreib grad ein Programm in Java und kriege ploetzlich beim Ausfuehren immmer eine Null pointer Exception beim Event dispatching.

Wo kommt der Fehler her, und was ist die heaeufigste Ursache dafuer?

–matze

hi,

Ich schreib grad ein Programm in Java und kriege ploetzlich
beim Ausfuehren immmer eine Null pointer Exception beim Event
dispatching.

NullPointer Now! (http://139.18.184.107/images/null.jpg ) Vermutlich schiesst Du über die Grenzen eines Arrays hinaus oder machst etwas, das etwas anderes darüber hinausschiessen lässt …

al

Eine Variable die kein Primitive ist immer eine Referenz bzw. ein Zeiger (Pointer) auf ein Objekt.

Und eine Referenz wird standardmäßig mit null initialisiert. Wenn du jetzt über die Referenz auf das Objekt zugreifen willst, bevor du ein Objekt zugewiesen bzw. mit new angelegt hast, dann kriegst eine NullPointerException, weil nichts da ist worauf du zugreifen könntest.

Grüße, Robert

danke, ich werd’s mal darauf untersuchen.

Falsches Forum -bitte nächstes mal korrekt-Danke
o.T. Grüsse Peter

zeige auf variablen, objekte, was auch immer, die noch nicht mit new angemeldet sind zeigen erst mal nach NULL. Versuchst Du jetzt darauf zuzugreifen, gibts die NullPointer-Exeption (deshalb Null-Zeiger-Ausnahmebedingung)
Häufigste Ursache ist eben wenn man z.B. seeehr häufig in C/C++ einen zeiger nicht mit new initialisert oder eine andere gültige Adresse zuweist.

Und eine Referenz wird standardmäßig mit null initialisiert.

Mir hat man beim erlernen von C++ beigebracht, das Referenzen NIE NULL sein können. Diese eigenschaft können legedlich Zeiger erhalten.

Grüße, Robert

Gruß

  • Michael-

Mir hat man beim erlernen von C++ beigebracht, das Referenzen
NIE NULL sein können. Diese eigenschaft können legedlich
Zeiger erhalten.

Eine C++ Referenz _muß_ initialisiert werden und kann danach nicht mehr verändert werden, bei Java ist das nicht der Fall, da wird eine Referenz automatisch mit null initialisiert bzw. kann man einer Referenz wieder null zuweisen um dem Garbage Collector zu signalisieren, dass man das Objekt nicht mehr benötigt.

In Java gibt es auch nur Referenzen, alle Variablen die du deklarierst sind implizit Referenzen des jeweiligen Typs (außer Primitives), während man _nur_ mit C++ Referenzen kaum arbeiten könnte.

Grüße, Robert