Bonjour,
Je bloque sur un problème. J'utilise une API propriétaire, avec une javadoc livrée. Dans cette API, je traite des associations, définies par l'interface Association. Je ne connais pas le type précis de l'objet, je les manipule via un cast vers le type Association. L'API ne me permet pas en plus de créer manuellement des associations, il n'y a aucun point d'entrée pour le faire. En fait, je n'ai pas besoin de le faire d'ailleurs.
Dans la déclaration de l'interface Association, il existe des champs statiques avec des valeurs entières. Je voudrais pouvoir récupérer ces valeurs, via une méthode qui prend en paramêtre le nom du champ.
J'ai commencé à faire un bout de code :
Typiquement, j'ai 5 champs, tous entier et statique. Je voudrais utiliser la reflection pour récupérer la valeur de chacun d'entre eux, si possible. Je rappelle je ne peux pas instancier moi même une Association (sinon, j'aurais utiliser la méthode getInt de la classe Field, tout bêtement ...).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public static int stringAssocTypeToIntAssocType( String assocType ) { int val = -1 ; try { Field[] attrs = Class.forName( "com.example.Association" ).getFields(); for( int i=0; attrs!=null && i<attrs.length && val==-1; i++ ) { if( attrs[i].getName().equals( assocType ) ) val = ... i don't know ... } } catch( Exception e ) { e.printStackTrace(); } System.out.println( val ); return val; }
Est-ce que qqun aurait une idée pour réaliser cela ? Est-ce possible ?
Effectivement, je pourrais récupérer la valeur de chaque champs manuellement, en récupérant des associations préconstruites par l'API, en les notant sur un bout de papier, et en les réinjectant en dur dans mon code. Mais cette solution serait mon dernier recourt, elle n'est pas très propre à mon goût.
J'attends vos réponse![]()
Partager