16 Stimmen

Vergleichen Sie ein Objekt mit Null in Java

Ich versuche zu überprüfen, ob ein Objekt null ist oder nicht, indem ich diese Syntax verwende:

void renderSearch(Kunde k) {
    System.out.println("Suchkundenrendering>...");
    try {
        if (!k.equals(null)) {
            System.out.println("Suchkunde gefunden...");
        } else {
            System.out.println("Suchkunde nicht gefunden...");
        }
    } catch (Exception e) {
        System.err.println("Fehler bei der Kundensuche: "
                + e.getMessage() + "-" + e.getClass());
    }
}

Ich erhalte die folgende Ausnahme:

Fehler bei der Kundensuche: null
Klasse java.lang.NullPointerException

Ich dachte, dass ich diese Möglichkeit mit meinem if und else -Anweisung berücksichtigt habe.

1 Stimmen

Plus. if und else werden nicht als Schleife bezeichnet. es ist eine Bedingung

29voto

SuPra Punkte 7998

Sie vergleichen nicht die Objekte selbst, sondern deren Referenzen.

Versuchen Sie

c != null

in Ihrem if Statement.

13voto

Greg Leaver Punkte 801
!c.equals(null)

Diese Zeile ruft die equals-Methode auf c auf, und wenn c null ist, erhalten Sie diesen Fehler, da Sie keine Methoden für null aufrufen können. Stattdessen sollten Sie verwenden

c != null

11voto

Alex Martelli Punkte 805329

Verwenden Sie c == null, da Sie Referenzen vergleichen und nicht Objekte.

8voto

Midhat Punkte 16900

Verwenden Sie c==null

Die equals-Methode erwartet normalerweise ein Argument vom Typ Kunde und ruft möglicherweise einige Methoden des Objekts auf. Wenn dieses Objekt null ist, erhalten Sie die NullPointerException.

Auch c könnte null sein und c.equals könnte die Ausnahme auslösen, unabhängig vom übergebenen Objekt

3voto

Nrj Punkte 6513

Sehr wahrscheinlich ist das Objekt c in diesem Fall null.

Sie möchten möglicherweise die Standardimplementierung von equals für Customer überschreiben, falls Sie sich anders verhalten müssen.

Stellen Sie außerdem sicher, dass das übergebene Objekt nicht null ist, bevor Sie die Funktionen darauf aufrufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X