eccezione Nullpointer
-
16-09-2019 - |
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
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