codefree
Messages postés8Date d'inscriptionlundi 26 juillet 2004StatutMembreDernière intervention19 août 2004
-
3 août 2004 à 18:13
fmazoue
Messages postés335Date d'inscriptionvendredi 14 février 2003StatutMembreDernière intervention 1 septembre 2015
-
4 août 2004 à 20:30
salut à tous j'ai une petite question de débutant
je ne dois rien afficher lorsque ma variable ne contient rien (en JSP)
ma variable se trouve dans une base de données
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 3 août 2004 à 20:00
:big) Neodante :big)
Juste un truc de prog pour fmazoue, lorsque l'on fait un test qui renvoie déjà un booléen, cela ne sert à rien de remettre une condition. Par conséquent pour optimiser ton code (et c'est vrai en C, ...) :
if (!maVar.equals("")) ... est plus rapide ... non ???
En plus à la place du equals(""), je mettrais plutot length() == 0 c'est plus rapide (regarde les codes sources de la classe String) ...
Maintenant pour codefree, lorsque tu fais :
maVar == null -> ce qui est bon pour n'importe quel objet, tu compare l'allocation mémoire de celui-ci, est-il alloué ou non ???
Egalement très important, si tu reprends ce que je viens de dire, on ne compare JAMAIS une chaine de caractères avec des opérateurs (seul l'opérateur + est surchargé -> concaténation) car sinon tu compare les adresses mémoires ... en gros tu veux savoir si 2 var représente le même objet en mémoire mais pour StringTOTO == "", cela te renverra toujours faux puisque l'expression "" te crée une nouvelle chaine en mémoire (vide !) ...
J'espère que tu as compris ce que je voulais dire !!! lol
cs_Dobel
Messages postés333Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention23 novembre 20091 3 août 2004 à 22:48
je rajoute un petit truc à cette magnifique explication :
si maVariable est nulle, tu va avoir une exception inutile (puisque null est bien different de "")
donc tu peux tester
"".equals(maVariable)
qui marche même si maVariable est null
il faut savoir aussi que lorsque tu déclare tes chaines par
String s = "uneChaine"
String s2 = "uneChaine"
il se créé 1 et 1 seule String en mémoire et s et s2 pointent vers la même
par exemple :
String temp1 = "1";
System.out.println("1".equals(temp1));//true
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 3 août 2004 à 23:52
:big) Neodante :big)
Effectivement pour l'optimisation du "".equals() c'est la vraie bonne méthode du programmeur Java averti ... donc a utilisé de préférence .... on dit merci à Dobel pour ce complément !!! ;-)
@+