code: public static <T> Class<?>[] resolveGenerics(Class<T> superType, Class<? extends T> subType) {
          checkNotNull(superType, "superType should not be null");
          checkNotNull(subType, "subType should not be null");
          Class<?> subTypeWithoutProxy = ProxyUtils.cleanProxy(subType);
          return TypeResolver.resolveRawArguments(TypeResolver.resolveGenericType(superType, subTypeWithoutProxy),
                  subTypeWithoutProxy);
      }
docs: Resolve generics of a class relatively to a superclass.
  
  @param superType the superclass.
  @param subType   the subclass.
  @param <T>       the type of the superclass.
  @return the resolved types.