Hallo,
ich wollte bisschen mit "Pointern in Java" rumexperimentieren und hab versucht mir ne einfach verkettete Liste zu bauen.
Jetzt komm ich aber nicht weiter weil ich immer ne Null Pointer Exception bekomme.
Hab versucht mich bisschen zu belesen...aber ich check nicht was die null pointer exception ist und kann deswegen auch meinen fehler nicht beheben
hinter erstes versteckt sich also kein Objekt...in der Methode insert rufst du jetzt aber [c]if (leer())[/c] auf, also die Methode leer()..dort passiert wiederum [c]erstes.next[/c] <-- da kracht es. Du versuchst auf die Eigenschaft next zuzugreifen. erstes ist aber [c]null[/c].
Mit dem Durchlesen des o.g. Artikels, kommst du hoffentlich weiter....
Zuerst werden also zu den drei Variablen je eine neue Pointer Instanz zugewiesen.
Der Konstruktor wird allerdings erst danach aufgerufen und setzt die Variablen wieder auf null...
Ich finde es gefährlich sowas zu schreiben, weil erstes und akt 'null' bleiben und nur letztes nachher nicht mehr 'null' ist.
[Java]
private Pointer erstes,akt,letztes = new Pointer();
[/Java]
Besser so:
[Java]
private Pointer erstes = new Pointer();
private Pointer akt = null;
private Pointer letztes = null;
[/Java]
oder wenn du alle initialisieren möchtest:
[Java]
private Pointer erstes = new Pointer();
private Pointer akt = new Pointer();
private Pointer letztes = new Pointer();
[/Java]
oder wenn du alle initialisieren möchtest:
[Java]
private Pointer erstes = new Pointer();
private Pointer akt = new Pointer();
private Pointer letztes = new Pointer();
[/Java]
Sinnvoller wäre da IMHO
[Java]
private Pointer erstes = new Pointer();
private Pointer akt = erstes;
private Pointer letztes = erstes;
[/Java]
(muss man natürlich in der Liste berücksichtigen...)
sind schon einige sachen die man aus anderen sprachen vll anders kennt
ähm...aber mit dem nullen von den Pointern erstes, akt und letztes......ich dachte dass ich die nulle ist egal weil wenn ich dann ein neues Element einfüg bekommen die Pointer doch die Referenz des Neuen Pointers übergeben oder?
Sinnvoller wäre da IMHO
[Java]
private Pointer erstes = new Pointer();
private Pointer akt = erstes;
private Pointer letztes = erstes;
[/Java]
(muss man natürlich in der Liste berücksichtigen...)