常用方法介绍
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()
)