/**
* 通过全限定类名调用静态方法
*
* @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
今日推荐
周排行