Frage

Es gibt eine Möglichkeit, dass dies eine dupicate Frage sein kann. Ich initialisieren ein String-Variable null.I kann oder nicht mit einem value.Now aktualisieren kann ich mag überprüfen, ob dieser Variable auf null nicht gleich ist und alles, was ich versuche, erhalte ich einen Null-Zeiger exception.I nicht leisten kann, werfen Nullpointer Ausnahme, wie es ist costly.Is es eine Abhilfe, die efficient.TIA

ist
War es hilfreich?

Lösung

Wenn Sie

if (x == null)

Sie werden nicht erhalten eine NullPointerException.

Ich vermute, Sie tun:

if (x.y == null)

, die wirft, weil x null ist, nicht weil x.y null ist.

Wenn das macht es nicht erklären, schreiben Sie bitte den Code, den Sie verwenden für Ungültigkeit zu testen.

Andere Tipps

Ich glaube, Sie so etwas wie dies tun,

  String s = null;

  if (s.equals(null))

Sie entweder überprüfen null wie diese

  if (s == null)

Ein besserer Ansatz ist es, die null und nur überprüfen für den erwarteten Wert wie folgt,

zu ignorieren
  if ("Expected value".equals(s))

In diesem Fall wird das Ergebnis ist immer falsch, wenn s Null ist.

String ist unveränderlich

@Test(expected = NullPointerException.class)
public void testStringEqualsNull() {
    String s = null;
    s.equals(null);
}

@Test
public void testStringEqualsNull2() {
    String s = null;
    TestCase.assertTrue(s == null);
}
  
    

Ich bin im Vergleich s == null nur

  

Sie zeigen den Code-Schnipsel, die Sie geschrieben haben, s == null wird nie ein NPE werfen

Wenn Sie überprüfen, ob „s“ null ist, dann gilt nicht einen Punkt (.) Nach „s“. das tun würde Nullpointer werfen, wie die Anwendung Punkt (.) bedeutet, dass Sie auf einer Zeigerposition zuzugreifen versuchen, die im Moment im Grunde null ist!

Versuchen Sie auch Bibliotheksfunktionen zu verwenden, die überprüfen, ob ein String null oder leer ist. Sie können StringUtils.isEmpty (e) von Apache-Bibliothek verwenden, die sowohl überprüft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top