Eccezione Nullpointer

C’è una possibilità che questa possa essere una domanda duplice. Inizializzo una variabile String su null. Posso aggiornarla o meno con un valore.Ora voglio controllare se questa variabile non è uguale a null e qualunque cosa provi ottengo un’eccezione di puntatore nullo. Non posso permettermi di lanciare eccezione nullpointer in quanto è costosa. C’è qualche soluzione che sia efficiente. TIA

Se usi

if (x == null) 

non otterrai una NullPointerException .

Sospetto che tu stia facendo:

 if (xy == null) 

che viene lanciato perché x è nullo, non perché xy è nullo.

Se questo non lo spiega, ti preghiamo di pubblicare il codice che stai utilizzando per verificare la nullità.

Immagino che tu stia facendo qualcosa del genere,

  String s = null; if (s.equals(null)) 

O controlli nullo come questo

  if (s == null) 

Un approccio migliore è quello di ignorare il null e basta controllare il valore atteso come questo,

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

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

La stringa è 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); } 

Sto confrontando solo s == null

puoi mostrare lo snippet di codice che hai scritto s == null non getterà mai un NPE

se stai verificando se “s” è nullo, non applicare un punto (.) dopo “s”. Ciò comporterebbe NullPOinterException, in quanto l’applicazione punto (.) Significa che stai tentando di accedere a una posizione del puntatore che al momento è sostanzialmente nullo!

Prova anche a utilizzare le funzioni della libreria che controllano se una stringa è nullo o vuota. è ansible utilizzare StringUtils.isEmpty (s) dalla libreria apache che ha verificato entrambi