常用方法介绍

1、解析方法的返回值类型

/**
* 解析方法的返回值类型
* @param method 方法
* @param srcType 定义方法的类
* @return 返回值类型
*/
public static Class<?> getMethodReturnType(Method method, Class<?> srcType) {
Class<?> returnType = null;
Type resolveReturnType = TypeParameterResolver.resolveReturnType(method, srcType);
//单独处理这两种情况,主要是为了处理泛型
if (resolveReturnType instanceof Class<?>) {
returnType = (Class<?>) resolveReturnType;
} else if (resolveReturnType instanceof ParameterizedType) {
returnType = (Class<?>) ((ParameterizedType)resolveReturnType).getRawType();
} else {
returnType = method.getReturnType();
}
return returnType;
}

备注:正如上面所示,​​TypeParameterResolver​​​ 除了能解析方法的返回值类型以外,还可以解析方法的参数类型(​​TypeParameterResolver.resolveParamTypes()​​​),字段类型(​​TypeParameterResolver.resolveFieldType()​​)