Ca c'est une bonne nouvelle :)Citation:
Envoyé par ®om
En C c'etait le cas .. et j'ai passe 3 jours a trouver d'ou venais mon erreur (test toujours vrais .....)
Version imprimable
Ca c'est une bonne nouvelle :)Citation:
Envoyé par ®om
En C c'etait le cas .. et j'ai passe 3 jours a trouver d'ou venais mon erreur (test toujours vrais .....)
C'est plus clair en effet et suffit la pupart du temps.Citation:
Envoyé par Clorish
L'intérêt des objets Fonctions, c'est qu'on peut bénéficer de l'héritage, de la redéfinition, etc ...
Moi aussi. On peut ainsi mettre des noms plus explicite. On peut aussi retrouver une même valeur plus facilement (c'est mieux que du recherche/remplacement de chaine lorsqu'on fait du refactoring)Citation:
Envoyé par Clorish
Citation:
Envoyé par Clorish
Merci pour l'astuce même si je pense qu'elle sert davantage au C ou à Delphi car en Java, tout du moins avec un IDE comme Eclipse qui fait de la compilation incrémentale, tu ne peux pas commettre ce genre d'erreur puisque l'affectation dans un if ne peut se faire que si au final, l'expression du if retourne un booléen.
- si i est un int, if (i = 2) est donc immédiatement souligné comme une erreur !
- si b est un booleen, il est vrai que ton astuce fonctionne if (true == b) en place de (b == true) mais finalement ne me sert pas puisque je ferai directement if (b)
A mon tour, tu m'as fait pensé à une astuce :
au lieu de faire, mieux vaut faireCode:if (maString.equals("toto"))
qui évite de contrôler le cas du null :Code:if ("toto".equals(maString))
Code:if (maString!=null && maString.equals("toto"))
Et pour les chaines vide, je préfère
àCode:if (maStringNonNull.length() > 0)
Code:if (maStringNonNull.equals(""))
Le seul cas où on peut se tromper en java pour l'affectation / test d'égalité (il faut quand même le vouloir):Citation:
Envoyé par benwit
Code:
1
2
3 boolean a = ...; boolean b = ...; if(b=a) {...} // au lieu de if(b==a) {...}
Euh, plusieurs remarques.Citation:
Envoyé par benwit
La première, c'est qu'il faut tester == 0 et non > 0 (sinon c pour les chaines non vides). (faute de frappe je suppose)
Ensuite, suite à ta première remarque, autant faire "".equals(maString) :)
Enfin, pour tester si une chaine est vide, le plus simple est .isEmpty() (c'est fait pour ça) :)
rom,
oui, faute de frappe :lol:
oui aussi pour "".equals(maString) mais pour les chaines non null (c'est pour cela que j'ai écris maStringNonNull), je préfère éviter l'utilisation de chaîne "" dans le code (goût perso).Code:if (maStringNonNull.length() == 0)
Euh, une autre remarque :
isEmpty est peut être fait pour cela mais pour les Collection ou d'autres mais pas pour les String !!! (faute de précipitation je suppose) ;)
Citation:
Envoyé par benwit
Effectivement je n'avais pas vu que c'était que à partir de java 6 (c'est mon jdk par défaut, donc ma javadoc par défaut, donc je ne fais pas attention) :)Citation:
Envoyé par javadoc
Mais bon donc isEmpty() existe maintenant pour les String :)
désolé, je suis tout autant fautif puisque je n'ai pas vérifier que ce que je disais était vrai dans ma version de java (< 1.6)
Merci donc pour l'info ;)
D'ailleurs, il serait bien que le site Developpez mette à jour la doc accessible par Javasearch
Merci.:)
etCitation:
Envoyé par ®om
;)Code:if(true=a) {...} // au lieu de if(true==a) {...}