Bonjour

Je fais un algo avec de la réflexivité. Lorsqu'un field d'une classe est une collection, j'ai besoin de savoir qu'elle est la classe des éléments de la collection. Par exemple si j'ai un Set<String> j'aimerais obtenir la classe java.lang.String.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Class clazz = Toto.class;
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
    Class fieldClass = field.getType();
    if (Collection.class.isAssignableFrom(fieldClass)) {
        ParameterizedType type = (ParameterizedType) field.getGenericType();
        // TODO : Qu'est-ce-que je dois faire ici pour avoir la classe des éléments de la collection ?
    }
...
J'ai lu les API sur Type, ParametrizedType, etc... Mais j'avoue que je ne comprends pas bien.

Merci d'avance pour votre aide