Journal du Net > Développeurs > Contributions > Soumettez votre meilleure astuce Java

APPEL
A CONTRIBUTION

Vous manipulez le langage Java au quotidien pour concevoir votre site Web ou vos applications ? Vous avez certainement une astuce à partager !
Participez
 Sécuriser la comparaison de chaîne de caractères  
Thibaud , Lille

Quel est en 3 lignes l'objectif de votre astuce ?
L'objectif est d'éviter de lever une NullPointerException lors de l'utilisation de la méthode equals quand on veut comparer une chaîne de caractères à un "motif" bien défini (chaîne constante par exemple).

Décrivez votre astuce en détail. N'hésitez-pas à inclure des portions de codes.
Prenons une variable "maVariable" et on veut savoir si elle contient le motif "MOTIF1" ou bien le motif "MOTIF2". On codera les tests suivants:
if(maVariable.equals("MOTIF1") ){
//réaliser action 1
}

if(maVariable.equals("MOTIF2") ){
//réaliser action 2
}

if(maVariable.equals("") ){
System.out.println("la variable est vide!");
}

Seulement si la variable "maVariable" est à NULL (pour une raison ou une autre), l'appel de la méthode equals déclenche une NullPointerException. Ces exceptions sont rarement anticipées et donc rarement catchées.
Pour éviter cet ecueil on peut completer le test :
if((maVariable != null) && (maVariable.equals("MOTIF1"))){
//...
}
Personnellement je trouve que ça alourdit le code alors que le test suivant fonctionne et ne déclenchera jamais de NullPointerException :
if("MOTIF1".equals(maVariable) ){
//réaliser action 1
}

if("MOTIF2".equals(maVariable) ){
//réaliser action 2
}

if("".maVariable.equals(maVariable) ){
System.out.println("la variable est vide!");
}


Publié le 27 avril 2007

Soyez le premier ou la première à réagir à ce temoignage : réagir
5 contributions : 1 2 3 4 5
 




 

© Benchmark Group, 69-71 avenue Pierre Grenier 92517 BOULOGNE BILLANCOURT Cedex

RECHERCHER