Le Jeudi 30 Janvier 2003 15:34, HAREL Anthony a �crit : > Et dans les jakarta commons, quel est l'objet � utiliser pour mettre en > place un type �num�r�? >
Je pr�sume que J�rome faisait r�f�rence � org.apache.commons.lang.enum.Enum (ouf ! ) que tu trouveras � http://jakarta.apache.org/commons/lang/ Il existe aussi une autre approche, dont j'ai pas trouv� de biblioth�ques toute faite (peut �tre s'y mettront-ils un jour chez les jakarta commons ? ), qui est de dire que au lieu de cr�er directement des constantes pour ressembler aux enums du C, tu peux cr�er un syst�me objet qui reproduise ce comportement. Par exemple, pour les jours de la semaine, tu vas te cr�er une interface cens� d�clencher un comportement : public interface Semaine { public void pourLeLundi(); public void pourLeMardi(); ... } Maintenant tu auras certainement besoin de choisir quelle action faire selon que tu es lundi, mardi, etc. Pour cela, une classe qui reprend le m�me principe que l'Enum de common, sauf que la constante rep�re est priv�e : public class Jour { private static Jour LUNDI = new Jour(); private static Jour MARDI = new Jour(); ... public static Jour getLundi() { return LUNDI; } ... Et enfin, une classe d'action statique interne � la classe Jour: public class Selon { private Semaine maSemaine; public Selon(Semaine elle) { maSemaine = elle; } public void enCasQue(Jour lui) { if (lui == Jour.LUNDI) maSemaine.pourLeLundi(); else if 'lui == Jour.MARDI) maSemaine.pourLeMardi(); etc... } } } Je ne sais pas si je suis tr�s clair ! C'est un peu plus compliqu� et laborieux au d�part que les Enum de common, mais apr�s tu as tes if...else (ou switch case du C) faits une fois pour toute, et ton code est compl�tement lib�r� de toute s�rie de "if" kilom�trique ! Tu n'as plus que des interfaces � �crire ! Et par dessus le march� ton code ne manipule m�me plus de constantes ! N'est-ce pas fantastique ? A la v�tre. -- SARL diaam informatique - 04 50 77 12 60 Ingenierie, d�veloppements de syst�mes d'information http://www.diaam-informatique.com
