null != null ???

Herr Kaiser

Bekanntes Mitglied
Hi Forum,

dem Anfänger müsste noch mal auf die Sprünge geholfen werden: Ich habe eine ArrayList wert vom Typ Object. Durch wert.add(null) hänge ich einige leere Elemente an (die später durch konkrete Werte ersetzt werden können).
Wenn ich mir dann wert.get(n) ausgeben lasse, erhalte ich null. Wenn ich wert.get(n)==null ausgeben lasse, erhalte ich false. Wenn ich wert.get(n).equals(null) abfrage, gibt's ne NullPointerException. Wie kann ich am besten überprüfen, ob wert.get(n) null ist?

Danke schonmal 🙂
 
Hi Herr Kaiser,

Ich verstehe zwar auch, was fasch läuft, aber wenn du mit .equals() vergleichst, kannst in die catch-Klausel der NullPointerException packen, was passieren soll wenn der Eintrag 'null' ist.

Der Code könnte z.B. so aussehen:

Java:
for(int i=0; i<10; i++){
     try{
          boolean b  = true; 
          b = wert.get(i).equals(null);
     catch(NullPointerException ex){
          // Wert ist null!
     }
     if(!b){
         // Wert NICHT null!
     }
}

Ist zwar nicht sehr elegant, müsste aber funktionieren.

javaDev2011
 
Danke, XHelp, das war schonmal eine gute Info. Tatsächlich, wenn ich meinen Ansatz ausschnittsweise nachbaue, funktioniert es, wie es soll. Der Fehler liegt also in meinem weiteren Code. Leider ist der schon sehr lang und unübersichtlich. Ich werde mal danach fahnden, an welcher Stelle es hakt und dann den Code posten. Danke schonmal, jetzt kann ich gezielter suchen 🙂
 
Die fragwürdigen Stellen mit
Code:
System.out.println
vollzustopfen könnte auch helfen. Vllt werden da auch völlig verschiedene Objekte untersucht.
 
Jetzt hab ich's!
Ganz dämlicher Fehler meinerseits: 😳

Java:
System.out.println("Wert ist null: "+wert.get(0)==null);

liefert "false"

Java:
System.out.println("Wert ist null: "+(wert.get(0)==null));

gibt "Wert ist null: true"


Danke für eure Mühe 🙂 🙂
 
Tönt meiner Meinung nach recht kurios. Möchtest du so eine Art Array verhalten damit nachbilden?

Hab ich vermutlich auch verwirrend formuliert. Die Anzahl der Werte kann jederzeit über einen JSpinner verändert werden. Jedesmal, wenn sich die Zahl der Werte erhöht, verlängere ich die Liste, indem ich erstmal null anhänge. Über eine Tabelle kann dann ein Wert eingegeben werden, der null ersetzt. Ich schau mir List aber nochmal an. Habe mir die Verwendung von ArrayLists angewöhnt, wenn die Anzahl der Werte variabel is. Vermutlich geht's in manchen Fällen auch ökonomischer.
Vielen Dank!
 
Also ich verstehe nur Bahnhof... Wieso sollte jemand die Anzahl der in einer ArrayList enthaltenen Elemente vorzeitig per "add()" erhöhen wollen, wenn eine solche ohnehin dynamisch ist? Ein auffüllen mit "null" macht doch keinen Sinn. Wenn man in einer Collection keine Elemente doppelt haben will eignet sich ein Set ohnehin besser. Ich denke mal einige Kapitel über Collections dürften hier sehr aufschluss- und vor allem hilfreich sein.

Let me google that for you

@0bern00b: Iwie hat des mit deinem Link wohl nicht funktioniert 😉 Wie lese ich den Serverstatus in PHP... Wie lese ich diese XML usw... aber nix wie lese ich die API... hmmmm.
 
Zuletzt bearbeitet von einem Moderator:
Ein sehr fürsorgliches Forum!
Auch wenn es in meinem Rahmen schon Sinn macht und auch doppelte Einträge sein müssen: Danke für's Gedanken machen 🙂

Ups, hatte vergessen, das Thema auf "erledigt" zu setzen. Tschuldigung. 😳
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben