Bonjour,
j'ai essayé de passer la variable "nom"
ça ne fonctionne pas.Code:
1
2
3
4
5
6
7
8 private void traitementDesDonnees(String nom) { new Thread(new Runnable() { @Override public void run() { if(nom == "Laure") { ... }; } } }
Version imprimable
Bonjour,
j'ai essayé de passer la variable "nom"
ça ne fonctionne pas.Code:
1
2
3
4
5
6
7
8 private void traitementDesDonnees(String nom) { new Thread(new Runnable() { @Override public void run() { if(nom == "Laure") { ... }; } } }
Bonsoir,
Déjà tu avais une erreur de syntaxe, il manquait une parenthèse et un point virgule. Avec ce type de déclaration pour un thread uniquement les variables de type final peuvent être transmises. il y a alors 2 façons de faire soit tu te crées ta propre classe fonctionnant comme un thread
Soit tu transformes ta variable en finalCode:
1
2
3
4
5
6
7
8
9
10
11
12 public class monThread implements Runnable { String monNom; monThread(String nom) { this.monNom = nom; } public void run() { if(monNom == "Laure") { }; } }
Code:
1
2
3
4
5
6
7
8 private void traitementDesDonnees(String unNom) { final String nom = unNom; new Thread(new Runnable() { public void run() { if(nom == "Laure") { }; }}); }
et je rajoute on n'utilise pas == pour comparer des String mais la méthode equals()