利用反射调用静态方法_原创工具类


/**
 * 通过全限定类名调用静态方法
 *
 * @param clazzPath
 * @param clazzName
 * @param methodName
 * @param parameterTypes
 * @param parameters
 * @return java.lang.Object
 * @author xx
 * @date 2020/8/13 10:38
 */
private static Object invokeStaticMethod(String clazzPath,String clazzName,String methodName,Class[] parameterTypes, Object[] parameters){
    if(parameterTypes == null){ parameterTypes = new Class[0]; }
    if(parameters == null){ parameters = new Object[0]; }
    if(parameterTypes.length != parameters.length){
        throw new BusinessException(HttpStatusCode.BAD_REQUEST, "参数类型和参数数量不一致");
    }
    Object object;
    try{
        Class clazz = Class.forName(clazzPath + clazzName);
        Method method = clazz.getMethod(methodName,parameterTypes);
        object = method.invoke(null,parameters);
    }catch(ClassNotFoundException e){
        throw new BusinessException(HttpStatusCode.BAD_REQUEST, "类不存在:"+clazzPath+clazzName);
    }catch(NoSuchMethodException e){
        throw new BusinessException(HttpStatusCode.BAD_REQUEST, "方法不存在:"+methodName);
    }catch(Exception e){
        throw new BusinessException(HttpStatusCode.BAD_REQUEST, clazzPath+clazzName+"不存在"+methodName+"方法");
    }
    return object;
}


利用反射调用静态方法
標題

猜你喜欢

转载自blog.csdn.net/xx897115293/article/details/107974796