
如果被代理方法的参数有 primitive 类型,比如 int,args[k].getClass() 取出来是 java.lang.Integer ,之后执行 Method method = Class.forName(classType).getMethod(methodName, classes); 就会抛出 java.lang.NoSuchMethodException
这里正确的取被代理方法参数类型的方式应该是:
((MethodInvocationProceedingJoinPoint.MethodSignatureImpl) ((MethodInvocationProceedingJoinPoint) joinPoint).signature).getParameterTypes()