获取方法返回值泛型的真实类型

        //反射获取返回值
        Method method = clazz.getMethod("xxx");
        Class<?> returnType = method.getReturnType();
        if (returnType==List.class){
            Type type = method.getGenericReturnType();
            if (type instanceof ParameterizedType){
                Type[] actualTypeArguments = ((ParameterizedType) type).getActualTypeArguments();
                //因为list泛型只有一个值 所以直接取0下标
                String typeName = actualTypeArguments[0].getTypeName();
                //真实返回值类型 Class对象
                Class<?> actualType = Class.forName(typeName);
            }
        }

你可能感兴趣的:(反射)