大家好,请看我的问题描述:
public class Test{
public void add(String name,String age) {
//这里需要通过判断Test类中是否有addAfter方法,如果有就执行addAfter(name,age)
}
public void addAfter(String name,String age) {
System.out.println("我执行啦!");
}
}
如上,当add方法被调用的时候,会去判断当前Test类中是否有addAfter方法(addAfter方法的参数与add的参数是一致的,后期这个判断会放到注解中通过切面来判断)
通过反射获取addAfter的时候需要指定参数类型:
Method methodAddAfter = testClass.getMethod("addAfter",String.class,String.class);
现在的问题是getMethod的后两个参数 String.class,String.class 是动态的(取决于add的参数类型),我想问的是:如何将add的参数类型作为参数传入到testClass.getMethod中去呢?谢谢!🌹
另外,我上面的目的其实就是想为add添加一个后置方法,类似thinkphp中的前置、后置方法:
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller{
//前置操作方法
public function _before_index(){
echo 'before<br/>';
}
public function index(){
echo 'index<br/>';
}
//后置操作方法
public function _after_index(){
echo 'after';
}
}
那么springboot中有没有什么好的解决方案呢(每个方法自动去匹配:_before_当前方法名、_after_当前方法名)😂
ddAfter方法的参数与add的参数是一致的,既然你前面约定了这个约束,当你调用add方法的时候,aop一拦add方法,参数类型就都有了;