Domanda

C'è un possiblity che questa può essere una domanda dupicate. Ho inizializzare una variabile String a null.I può o non può aggiornare con un value.Now voglio verificare se questa variabile non è uguale a null e tutto ciò che provo ottengo un puntatore nullo exception.I non può permettersi di buttare eccezione nullpointer come è costly.Is c'è qualche soluzione che è efficient.TIA

È stato utile?

Soluzione

Se si utilizza

if (x == null)

volete non ottenere un NullPointerException.

Ho il sospetto che stai facendo:

if (x.y == null)

che sta gettando perché x è nullo, non perché x.y è nullo.

Se questo non spiega, si prega di inviare il codice che si sta utilizzando per verificare la nullità.

Altri suggerimenti

Credo che si sta facendo qualcosa di simile,

  String s = null;

  if (s.equals(null))

Si sia per controllare nulla di simile

  if (s == null)

Un approccio migliore è quello di ignorare il nulla e basta controllare per il valore atteso di questo tipo,

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

In questo caso, il risultato è sempre falsa quando s è nullo.

String è immutabile

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

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

I sto paragonando s == null solo

  

È possibile visualizzare il frammento di codice che avete scritto s nulla == non potrà mai gettare un NPE

Se si sta verificando se la "s" è nullo, quindi non si applicano un punto (.) Dopo la "s". Facendo che getterebbe NullPointerException, come l'applicazione di punto (.) Significa che si sta tentando di accedere a una posizione del puntatore che è fondamentalmente nulla in questo momento!

Anche cercare di utilizzare le funzioni di libreria che verificano se una stringa è nulla o vuota. è possibile utilizzare StringUtils.isEmpty (s) dalla libreria apache che ha controllato entrambe

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top