code: public static Type[] getActualTypes(Type actualType, Class<?> typeDefineClass, Type... typeVariables) {
  		if (false == typeDefineClass.isAssignableFrom(getClass(actualType))) {
  			throw new IllegalArgumentException("Parameter [superClass] must be assignable from [clazz]");
  		}
  
  		// 泛型参数标识符列表
  		final TypeVariable<?>[] typeVars = typeDefineClass.getTypeParameters();
  		if(ArrayUtil.isEmpty(typeVars)) {
  			return null;
  		}
  		// 实际类型列表
  		final Type[] actualTypeArguments = TypeUtil.getTypeArguments(actualType);
  		if(ArrayUtil.isEmpty(actualTypeArguments)) {
  			return null;
  		}
  		
  		int size = Math.min(actualTypeArguments.length, typeVars.length);
  		final Map<TypeVariable<?>, Type> tableMap = new TableMap<>(typeVars, actualTypeArguments);
  		
  		// 查找方法定义所在类或接口中此泛型参数的位置
  		final Type[] result = new Type[size];
  		for(int i = 0; i < typeVariables.length; i++) {
  			result[i] = (typeVariables[i] instanceof TypeVariable) ? tableMap.get(typeVariables[i]) : typeVariables[i];
  		}
  		return result;
  	}
docs: 获取指定泛型变量对应的真实类型<br>
  由于子类中泛型参数实现和父类（接口）中泛型定义位置是一一对应的，因此可以通过对应关系找到泛型实现类型<br>
  使用此方法注意：
  
  <pre>
  1. superClass必须是clazz的父类或者clazz实现的接口
  2. typeVariable必须在superClass中声明
  </pre>
  
  
  @param actualType 真实类型所在类，此类中记录了泛型参数对应的实际类型
  @param typeDefineClass 泛型变量声明所在类或接口，此类中定义了泛型类型
  @param typeVariables 泛型变量，需要的实际类型对应的泛型参数
  @return 给定泛型参数对应的实际类型，如果无对应类型，返回null
  @since 4.5.7