Bonjour,
Je ne sais pas si mon approche est la bonne et est possible.
Je vous explique ce que je souhaite faire:
Je souhaite faire un composant Swing de type textuel dans lequel l'utilisateur peut introduire des mots (ex des tags) séparés par un séparateur (ex ";"). A chaque saisie du séparateur j'essaye d'identifier un objet d'une liste d'objets connus dont le toString() == le mot introduit. Si je ne trouve pas de correspondant, je crée un nouvel objet et je l'ajoute à la liste des objets connus.
Voilà pour le décor.
Même si Swing n'implémente pas les génériques, j'essaye que mon composant les implémente. Donc ma classe à la tête suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
public class TagTextField<T> extends ... {
     public TagTextField(Set<T> availabletags) { ... }
Comme je disais plus haut si après saisie du séparateur par l'utilisateur je ne trouve pas d'objet correspondant je vais en construire un.

Donc j'aimerais trouver un Constructor pour T prenant une String en entrée.

Problème je n'arrive pas à mêler Reflection et Generic.

En lisant cette FAQ sur les génériques + la javadoc sur java.lang.reflect j'avais cru comprendre qu'en écrivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Field field=this.getClass().getDeclaredField("value") // où le champ value est de type T
Type type=field.getGenericType()
if (type instanceof Class) Constructor c=((Class)type).getDeclaredConstructor(String.class)
mais je reçois systématiquement un NoSuchFieldException.

Alors possible, pas possible mon idée ?

Merci,

Laurent