Nullpointer abfangen

delphiking1980

Bekanntes Mitglied
Hi,

ich habe da mal eine Frage :

nach Diversen Java Seminaren ist mir trotzdem nicht klar was besser ist :

Java:
if (objekt != null)

oder

Java:
if (null != objekt)

hört sich erstmal gleich an aber es soll wohl sein das im ersten Beispiel trotzdem eine nullpointer kommen kann. Oder ??
 
Das ist egal. Verwechselst du das garade mit sowas:

if("Franz".equals(name))
vs
if(name.equals("Fanz"))
wobei bei 1. keine NPE kommen kann, beim 2. schon wenn name null ist
 
Also eine Nullpointer kommt in keinem von beiden Fällen.

Der Unterschied ist nur, dass Leute, die aus C/C++ kommen, gern mal die zweite Variante bevorzugen, damit sie in jedem Fall den Fehler ausschließen, dass sie evtl. ne Zuweisung machen:
[c]if (obj = null)[/c] anstatt [c]if (ob == null)[/c]. Bei einer ungewollten Zuweisung würde die IDE höchstens eine Warnung anzeigen, wenn das so konfiguriert ist, aber bei der umgekehrten Variante gibts in jedem Fall einen Fehler und man muss sich die Zeile nochmal genau anschauen. Deshalb gewöhnen es sich manche an, in jedem Fall die Variable hinten (=rechts) zu schreiben.

Solange Du nicht auf eine Variable, die null enthält, per Methode oder Member zugreifst, kann nichts passieren.
 
Hallo,

in C++ darf fast alles als Boolean interpretiert werden. Deshalb meckert dort der Compiler auch nicht, wenn man (versehentlich) schreibt:

Java:
if(object = null)

Deshalb haben sich C++-Programmierer angewöhnt zu schreiben:

Java:
if(null == object)

Vergisst man hier ein Gleichheitszeichen, meckert der Compiler.
In Java macht es wirklich keinen Unterschied.
 
Hallo,

in C++ darf fast alles als Boolean interpretiert werden. Deshalb meckert dort der Compiler auch nicht, wenn man (versehentlich) schreibt:

Java:
if(object = null)

Deshalb haben sich C++-Programmierer angewöhnt zu schreiben:

Java:
if(null == object)

Vergisst man hier ein Gleichheitszeichen, meckert der Compiler.
In Java macht es wirklich keinen Unterschied.
Wow! Diese Erkenntnis ist neu in diesem Thread. Danke!
 

Neue Themen


Zurück
Oben