Comment facilement éviter les NPE dans son code, au niveau des conditions ?
J'pense que c'est connu de tous les devs (confirmé/sénior) , mais une petite piqure de rappel ne fait pas de mal.
Principe
Le principe est relativement simple : On évite de tester sur l’élément qui peut être null
Pourquoi Yoda style ? Car naturellement quand on va écrire du code, on va l'écrire comme on parle
Ma RG : Je veux une méthode pour vérifier si une chaîne de caractère est vide :
Pseudo code (non yoda style) :
function isTextEmpty(string value) : boolean{
// Si la chaine egale vide ...
if(value.equals("")) return true ;
return false;
}
Quel est le soucis ici ? Si value = null on va faire null.equals , BIM! NPE ! Il faut donc géré le NPE soit en faisant if(value != null && ...): ça alourdit les tests, faut gérer le TU etc...
Pseudo code (yoda style)
function isTextEmpty(string value) : boolean{
// Si vide égale la chaine ....
if("".equals(value)) return true;
return false;
}
Si jamais value est null, ça retourne false sans NPE ! (ça vous empeche pas de quand même rédigé le TU au limite, mais ça évite de complexifié le code pour rien)
Inverser tes conditions, tu fera !