Je rencontre un problème avec mon programme où un objet et un nom d'attribut sont renvoyés pour renvoyer le type de retour de la méthode.Java Création d'une nouvelle classe avec des génériques
public static Class<?> getAttributeType(Object object, String attributeName) {
try {
Method method = object.getClass().getMethod(
"get" + StringUtils.capitalize(attributeName));
return method.getReturnType();
} catch (Exception e) {
throw new RuntimeException("Unable to find the attribute:"
+ attributeName + " in class: "
+ object.getClass().getName());
}
}
Cette solution fonctionne très bien à moins que le type de retour d'une méthode ait un générique défini. Par exemple, si le prototype de méthode en question est List> getBooks> getBooks(), le code ci-dessus retournera simplement une liste au lieu d'une liste < Book>. Y a-t-il un moyen pour moi d'accomplir cela? Je peux facilement obtenir le type générique, je ne sais pas quoi faire une fois que je l'ai.
Merci à l'avance
En guise de meilleure pratique, je suggère que vous incluiez l'exception originale 'e' comme source pour la RuntimeException que vous lancez. Vous gagnerez tellement de temps à avoir accès à l'exception originale, celle qui dit ce qui a vraiment mal tourné. Bon que vous fournissez et un message supplémentaire avec le contexte si :-) – KLE