Java Reflection: Generics

Merci Google, tu sauves encore une fois ma journée.

Enfin non, plutot je devrais remercier Jakob Jenkov pour son excellent article sur la reflexion en Java sur les Generics.

  1. public class MyClass {
  2.  
  3.   protected List<String> stringList = …;
  4.  
  5.   pulic List<String> getStringList(){
  6.     return this.stringList;
  7.   }
  8. }

La magie de la réflexion s’opère…

  1. Method method = MyClass.class.getMethod("getStringList", null);
  2.  
  3. Type returnType = method.getGenericReturnType();
  4.  
  5. if(returnType instanceof ParameterizedType){
  6.     ParameterizedType type = (ParameterizedType) returnType;
  7.     Type[] typeArguments = type.getActualTypeArguments();
  8.     for(Type typeArgument : typeArguments){
  9.         Class typeArgClass = (Class) typeArgument;
  10.         System.out.println("typeArgClass = " + typeArgClass);
  11.     }
  12. }

Le commentaires sont fermés.