[Reflect] connaître la classe des éléments d'une collection
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:
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