Java tutorial
import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class Util { /** * Locates generic declaration by index on a class. * * @param clazz clazz The class to introspect * @param index the Index of the generic ddeclaration,start from 0. */ public static Class getGenericClass(Class clazz, int index) { Type genType = clazz.getGenericSuperclass(); if (genType instanceof ParameterizedType) { Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); if ((params != null) && (params.length >= (index - 1))) { return (Class) params[index]; } } return null; } }