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 :

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();
	}
}
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
MaClasse mc = new MaClasse();
AutreClasse.setObjet(mc);
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 ?

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