Bonjour à tous,
J'ai une classe qui lors de son initialisation va chercher une information via une requête HTTP et initialise l'un de ces attribut :
puis cette classe est passée à un autre objet qui va venir lire l'attribut initialisé (url) et ce dans un thread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 class MaClasse { private api_level public Maclasse() { getAPI(); } public initURL() { if(api_level == 1) url = "..."; else url = "xxx"; } private void getAPI() { new Thread(new Runnable(){ //Requête HTTP + lecture de réponse api_level = response; initURL(); }).start(); } }
Je n'ai pas encore effectué de test , mais j'imagine que au moment de AutreClasse.setObjet(mc); selon la durée de la requête, il est tout à fait possible que initURL(); n'est pas encore été appelé , exact ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 MaClasse mc = new MaClasse(); AutreClasse.setObjet(mc);
Dans ce cas comment m'assurer qu'au moment ou je vais faire appel à MaClasse.getUrl(); j'aurais bien une valeur correctement initialisée ?
merci
Partager