enum non de int mais de boolean
Au lieu de mettre en oeuvre une énumération correspondant à des valeurs de type 'int', en mettre une en oeuvre qui correspond à des valeurs de type 'boolean' et même de classe 'Boolean' car j'en ai besoin à plusieurs reprises dans une array 'Object' multi-dimensionnelle.
Donc au lieu de
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public class FormuleTarifaire
{
enum Prix {indexés, fixes} // 'int'
final static public Object[] formuleTarifaire =
{ new Object[]
{ new String( "Fournisseur" ),
new Integer(Prix.indexés)
},
new Object[]
{ new String( "Région" ),
new Object[]
... |
plutôt
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
{
enum Prix {indexés, fixes} // Comment faire pour 'boolean'
// Grande array pleine de Strings, Object, BigDecimal, (Boolean ?), ...
final static public Object[] formuleTarifaire =
{ new Object[]
{ new String( "Fournisseur" ),
new Boolean( (boolean) Prix.indexés) // Ou qqch s'y rapprochant
},
new Object[]
{ new String( "Région" ),
new Object[]
... |
J'ai un vague souvenir avoir vu cela quelque part de réalisé. Je rêve ?
Dans l'API, il existe un constructeur Boolean(boolean value)
N'est-ce pas d'intérêt presque général ?
Merci bcp.
new Boolean dans Object[] et enum booléen
Chers Gifffftane et CyberChouan,
Merci pour vos rapides réponses. Il semble que mon exposé original n'est pas bien en équilibre entre "Bref et rien que ce qui concerne ma question" et "Suffisamment d'explication pour que cela ne nécessite plus de question d'éclaircissement". Voici donc réponse à vos questions :
Mes arrays d'Object ("primaires"), pleines de new Object[], new BigDecimal(), new String() ... constituent une étape intermédiaire entre,
- d'une part, l'une des quelques listes de prix = données d'entrée (XML) de différents fournisseurs, reçues périodiquement et comportant des prix et intitulés d'articles de structure très peu uniforme (à plusieurs sous-structures) et dont la présence de certains éléments peut varier d'une période à l'autre,
- et d'autre part
--- un objet de classe TreeModel qui sert de référence à un objet de classe JTree (plein de 'Default MutableTreeNode's) créant un arbre permettant simplement de vérifier que ces données d'entrées sont introduites complètement et correctement,
--- ainsi qu'une autre array ("secondaire", à dimension non variable) où sont effectués un travail de réordonnancement et de regroupement des arrays primaires, afin que des boucles 'for' imbriquées trouvent facilement les valeurs.
La dimension de ces arrays d'Object[] primaires est variable, grâce aux créations de 'new Object[]' imbriqués. De plus, elle est très grande : plus de 200 éléments par période et par fournisseur. Ma classe de traitement, comportant l'array secondaire (= de regroupement) et les routines d'extraction de données (pour calculs et affichage graphique - boucles 'for' imbriquées) est prête.
Quelle autre structure plus simple qu'une array Object[] aurais-je pu mettre en oeuvre ?
Je voudrais simplement à présent ajouter à cette array, parmi les autres 'new XYZ', un 'new Boolean' mentionnant simplement 'Prix indexé ou fixe' (invariable par formule tarifaire d'un fournisseur et par période), selon ce qui est mentionné dans le fichier XML. La primitive 'boolean' n'est pas possible, n'étant pas un objet héritée de la classe Object, comme le sont BigDecimal, String et Boolean. Ma classe irait simplement lire la valeur de la propriété 'prix' de type boolean, dans l'objet de classe Boolean.
A cela, je cherche simplement à ce que les valeurs possibles de la propriété 'prix' de cette classe Boolean puisse comprende "indexé" et "fixe", qui est plus explicite que "false" et "true". D'accord qu'il s'agit d'une amélioration plutôt attirante ?
Mes intentions vous sont plus claires, à présent ?
Faut-il que je pense à la classe Enum<E extends Boolean<E>> ?
OK, je n'emploierai plus de caractères accentués. Je n'ai jamais eu de problème, développant toujours sous NetBeans (6.5). Pour ma connaissance : Quand pourrais-je rencontrer des problèmes ? Lorsque mon application est transportée dans un autre IDE (NetBeans 6.5), OS (Windows XP), JDK (1.6), JRE, API Swing ?
Merci de m'éclaircir ...