class ReflectionUtil {

    public static Class<?> getGenericSuperType(Class<?> type) {
        if (type == null) {
            return null;
        }

        Class<?>[] componentTypes = getComponentTypes(type.getGenericSuperclass());

        if (componentTypes == null) {
            return null;
        }

        return componentTypes[0];
    }

}