Question

Il y a une possibilité que cela peut être une question dupicate. J'initialiser une variable de chaîne à null.I peut ou ne peut pas le mettre à jour avec un value.Now Je veux vérifier si cette variable est pas égal à null et tout ce que j'essaie je reçois un pointeur nul exception.I ne peut pas se permettre de jeter nullpointer exception car il est costly.Is-il une solution de contournement qui est efficient.TIA

Était-ce utile?

La solution

Si vous utilisez

if (x == null)

vous allez pas obtenir un NullPointerException.

Je pense que vous faites:

if (x.y == null)

qui est de lancer parce que x est nulle, non pas parce que x.y est nulle.

Si cela ne l'explique pas, s'il vous plaît poster le code que vous utilisez pour tester la nullité.

Autres conseils

Je suppose que vous faites quelque chose comme ça,

  String s = null;

  if (s.equals(null))

Vous pouvez soit vérifier NULL comme ceci

  if (s == null)

Une meilleure approche est d'ignorer le nul et il suffit de vérifier la valeur attendue comme celui-ci,

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

Dans ce cas, le résultat est toujours faux quand s est nulle.

chaîne est immuable

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

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

Je compare uniquement le null == de la

  

peut vous montrer l'extrait de code que vous avez écrit s == null ne sera jamais jeter un NPE

si vous vérifiez si « s » est nulle, alors ne sont pas applicables d'un point (.) Après « s ». Faire cela jetterait NullPointerException, comme l'application de point (.) Signifie que vous essayez d'accéder à un emplacement de pointeur qui est essentiellement nulle au moment!

Essayez également d'utiliser les fonctions de bibliothèque qui vérifient si une chaîne est nulle ou vide. vous pouvez utiliser StringUtils.isEmpty (s) de la bibliothèque apache qui a vérifié à la fois

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top