code: public static <T, I extends T> Class<?>[] resolveArguments(Class<I> initialType,
                                                                 Class<T> targetType) {
          return resolveArguments(resolveGenericType(initialType, targetType), initialType);
      }
docs: Returns an array of raw classes representing type arguments for the {@code targetType} resolved
  upwards from the {@code initialType}. Arguments for {@code targetType} that cannot be resolved
  to a Class are returned as {@code Unknown.class}. If no arguments can be resolved then
  {@code null} is returned.
  
  @param initialType to resolve upwards from
  @param targetType to resolve arguments for
  @return array of raw classes representing type arguments for {@code initialType} else
  {@code null} if no type arguments are declared