sa9rtounsi
Messages postés15Date d'inscriptionmardi 8 décembre 2009StatutMembreDernière intervention29 mars 2013
-
29 mars 2013 à 13:19
sa9rtounsi
Messages postés15Date d'inscriptionmardi 8 décembre 2009StatutMembreDernière intervention29 mars 2013
-
29 mars 2013 à 19:25
Bonjour,
Je suis débutent en Java. J'ai un problème d'affichage d'une arraylist d'objets.
Je voudrais d'afficher le contenu d'un arraylist d'objets mais j'affiche toujours le même objet (le dernier).
Par exemple, si j'ajoute 3 objets différents, il m'affiche 3 fois le dernier ajouté. Pourquoi ?
code :
import java.util.ArrayList;
import com.ITExpertsConsulting.SDExpert.Persistance.Type;
public class Test {
public static void main(String []args){
ArrayList<Type> types=new ArrayList<Type>();
int i =0;
while(i<3){
Type type=Type.getInstence();
type.setIDType(i);
type.setLibellé_Type("type "+i);
types.add(type);
i++;
for(int j=0;j<types.size();j++)
{
System.out.println(types.get(j).getLibellé_Type());
}
}
}
}
Res :
type 0
type 1
type 1
type 2
type 2
type 2
Or la resultat attendue est :
type 0
type 0
type 1
type 0
type 1
type 2
Je trouve pas la solution , j'attend votre aide SVPL :-( ...
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 29 mars 2013 à 16:23
Re,
Donc c'est bien ce que je te disais. Tu as 3 fois le même objet dans ta liste. Donc quand tu modifies le n-ième élément de ta liste, tu les modifies tous en même temps. Le résultat est donc normal. Si tu veux 3 objets différents, il ne faut évidemment pas utiliser de singleton.
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 29 mars 2013 à 13:37
Salut,
Le code que tu nous montres est bon, mais je présume que ton "getInstence()" te renvoie toujours la même instance. Ce qui fait que tu as 3x le même objet dans ta liste.