code: private static Class<?> extractTypeFromClass(Class clazz, Class<?> source, int typeIndex) {
  		return extractTypeFromClass(null, clazz, source, typeIndex, 1, 1);
  	}
docs: Extract the generic type from the given Class<?> object.
  @param clazz the Class<?> to check
  @param source the expected raw source type (can be <code>null</code>)
  @param typeIndex the index of the actual type argument
  @return the generic type as Class, or <code>null</code> if none