Bonjours, j'ai un petit problème de syntaxe, voici mon code :
Comment faire pour que lorsque la variable "type" contient la valeur "File", l'exécution ne passe pas dans le if ?Code:
1
2 String type = child.getType().getId(); if (type != "File") {
Version imprimable
Bonjours, j'ai un petit problème de syntaxe, voici mon code :
Comment faire pour que lorsque la variable "type" contient la valeur "File", l'exécution ne passe pas dans le if ?Code:
1
2 String type = child.getType().getId(); if (type != "File") {
Bonjour,
if (!type.contains("File"))
doc
Merci c'est bon.
(ouCode:type.equals("File")
)Code:
1
2
3 // ne fait pas de NPE si type est null "File".equals(type)
Les objets se comparent avec equals(), pas avec ==
et les String sont des objets.
== sert à vérifier que deux variables pointent en fait vers un seul et même objet (ou sont toutes les deux null).
On peut aussi dire que == vérifie l'identicité :
- Deux objets ne sont identiques que s'ils sont en fait un seul et même objet.
- Pour les types de base, la seule identité du int 1 est 1, pareil pour le char 'c', pareil pour le boolean true ...
Il a utilisé la phrase "variable contient la valeur", j'ai présumé que qu'il voulait dire "File" est quelque part dans la String, parmi d'autres mot / lettres.
Donc effectivement si tu veut vérifier que la String vaut une autre String c'est equals, si tu veux vérifier que la String contient une autre String alors c'est contains :aie:.