Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Contrôle de la présence d'une valeur dans une liste

4 réponses
Avatar
olivier.forumusenet
Bonjour,

Je souhaiterais contr=F4ler un champ par rapport =E0 une liste de valeurs
connues.

J'ai d=E9fini des constantes, qui me servent par ailleurs =E0 effectuer
d'autres contr=F4les :

public static final int PROPRIETE_1_CONSTANTE_1 =3D 1;
public static final int PROPRIETE_1_CONSTANTE_2 =3D 2;
public static final int PROPRIETE_1_CONSTANTE_3 =3D 3;
etc.

Je voudrais maintenant contr=F4ler que pour un champ donn=E9
(Propriete_1), la valeur soit comprise dans la liste des constantes
correspondant.

J'ai envisag=E9 de cr=E9er un tableau statique contenant les constantes,
mais le risque est important d'ajouter une constante et d'oublier de la
rajouter dans le tableau.

Voyez-vous d'autres solutions?

Merci d'avance

4 réponses

Avatar
Raphael Tagliani
Je ne suis pas sûr d'avoir bien compris, mais vous pourriez utiliser une
Hashmap<String, int>, où le String serait PROPRIETE_1 et le int 1, par
exemple.
Sinon, un ArrayList pourrait aussi faire l'affaire (en créant un objet
MaConstante).
Si vos besoins sont moins dynamiques, vous pouvez utiliser enum.

Bonne journée.

Bonjour,

Je souhaiterais contrôler un champ par rapport à une liste de valeurs
connues.

J'ai défini des constantes, qui me servent par ailleurs à effectuer
d'autres contrôles :

public static final int PROPRIETE_1_CONSTANTE_1 = 1;
public static final int PROPRIETE_1_CONSTANTE_2 = 2;
public static final int PROPRIETE_1_CONSTANTE_3 = 3;
etc.

Je voudrais maintenant contrôler que pour un champ donné
(Propriete_1), la valeur soit comprise dans la liste des constantes
correspondant.

J'ai envisagé de créer un tableau statique contenant les constantes,
mais le risque est important d'ajouter une constante et d'oublier de la
rajouter dans le tableau.

Voyez-vous d'autres solutions?

Merci d'avance



Avatar
Hervé AGNOUX
wrote:


Voyez-vous d'autres solutions?



Si tu utilises java 5, il y a les enum, qui sont fait pour résoudre ce
problème.

Sinon, c'est un peu plus compliqué... Lorsque je voulais vraiment avoir ce
résultat avant, j'exploitais la reflexion. Ainsi tu peux obtenir la liste
des attributs final static dont le nom commence par "PROPRIETE_1" ; cette
liste étant obtenue automatiquement, tu n'as plus le souci de penser à la
rajouter dans un tableau en cas que. Tu place cet algo dans une méthode
static, et voilà.


--
Hervé AGNOUX
http://www.diaam-informatique.com

Avatar
olivier.forumusenet
Merci pour vos réponses, j'avais oublié de mentionner que je
travaillais en JDK 1.4 et que par conséquence, l'utilisation des types
énumérés m'était interdite.



Je ne suis pas sûr d'avoir bien compris, mais vous pourriez utiliser une
Hashmap<String, int>, où le String serait PROPRIETE_1 et le int 1, par
exemple.
Sinon, un ArrayList pourrait aussi faire l'affaire (en créant un objet
MaConstante).
Si vos besoins sont moins dynamiques, vous pouvez utiliser enum.

Bonne journée.

Bonjour,

Je souhaiterais contrôler un champ par rapport à une liste de valeu rs
connues.

J'ai défini des constantes, qui me servent par ailleurs à effectuer
d'autres contrôles :

public static final int PROPRIETE_1_CONSTANTE_1 = 1;
public static final int PROPRIETE_1_CONSTANTE_2 = 2;
public static final int PROPRIETE_1_CONSTANTE_3 = 3;
etc.

Je voudrais maintenant contrôler que pour un champ donné
(Propriete_1), la valeur soit comprise dans la liste des constantes
correspondant.

J'ai envisagé de créer un tableau statique contenant les constantes,
mais le risque est important d'ajouter une constante et d'oublier de la
rajouter dans le tableau.

Voyez-vous d'autres solutions?

Merci d'avance





Avatar
TestMan
Merci pour vos réponses, j'avais oublié de mentionner que je
travaillais en JDK 1.4 et que par conséquence, l'utilisation des types
énumérés m'était interdite.



Bonjour,

Par contre rien ne vous empèche d'utiliser un patron d'énumération pour
votre classe ;-)

A+
TM