Il vaut mieux eviter d'avoir des constructeurs qui s'appellent entre eux parce que ca rend la relecture difficile. Quand tu essaieras de relire ton code, tu te demanderas quel constructeur est celui qui fait "reellement" le boulot.
Je recommande l'utilisation d'une methode privee, e.g. init(), vers laquelle tu fais converger tous tes constructeurs. Tu trouveras davantage de details a: http://freeroller.net/page/cbeust/20021017 Independamment du fait que je pense que c'est une bonne habitude a avoir, ca devrait resoudre ton probleme. -- Cedric http://beust.com/weblog > -----Original Message----- > From: Aurelien Mazurie [mailto:aurelien.mazurie@;free.fr] > Sent: Tuesday, October 29, 2002 4:56 AM > To: [EMAIL PROTECTED] > Subject: Polymorphisme de constructeur > > > > Bonjour � tous, > J'ai essay� de trouver la r�ponse dans "Thinking In > Java 3", mais je > n'ai pas trouv�... Voil� ma question: j'ai plusieurs > constructeurs dans > une classe, dont certains font appel les uns aux autres. Par exemple: > > private MaClasse() // Constructeur > principal (de base) > { > // routines d'initialisations... > } > > public MaClasse(String[] ID) // Constructeur > effectivement accessible > { > this(); // appel au > constructeur "de base" > // traitement de l'argument ID... > } > > public MaClasse(Objets[] obj) // Autre possibilit� > d'accession au > constructeur > { > // cr�ation d'un tableau String[] ID � > partir de Objets[] > String[] ID = ... > this(ID); > } > > Vous voyez ce que je veux faire ? J'ai deux fa�on > d'indiquer � ma > classe, pour son initialisation, un tableau. Soit c'est un tableau de > String, soit c'est un tableau d'objets � partir duquel je g�n�re le > tableau de String. > Le probl�me c'est qu'� la compilation on me dit que le > constructeur > MaClasse(Objets[] obj) n'est pas valide car il fait des op�rations > AVANT l'appel au constructeur this(ID), qui est cens� �tre la > premi�re > chose appell�e... Or j'ai besoin de cr�er le tableau de > String avant de > l'injecter dans le constructeur capable de le g�rer. > Quelqu'un sait-il comment r�soudre le probl�me ? > > Aur�lien Mazurie >
