code: public static <T, S extends T> Class<?> resolveRawArgument(Class<T> type, Class<S> subType) {
      return resolveRawArgument(resolveGenericType(type, subType), subType);
    }
docs: Returns the raw class representing the argument for the {@code type} using type variable information from the
  {@code subType}. If no arguments can be resolved then {@code Unknown.class} is returned.
  
  @param type to resolve argument for
  @param subType to extract type variable information from
  @return argument for {@code type} else {@link Unknown}.class if no type arguments are declared
  @throws IllegalArgumentException if more or less than one argument is resolved for the {@code type}