四、Mybatis源码-反射模块常用工具方法

常用方法介绍

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()

发布了444 篇原创文章 · 获赞 113 · 访问量 40万+

猜你喜欢

转载自blog.csdn.net/panchang199266/article/details/103263947