胡乱捣鼓了一下,发现个问题。
我们知道,基于AspectJ风格的AOP,在声明一个通知时,可以绑定连接点的参数。
如下:
// 声明一个前置通知。
@Before("before1()&& args(arg1)")
public void say0(JoinPoint point,Object arg1){
//一些处理操作。
System.out.println(arg1);
}
那么,在这个例子中,无论目标对象中的方法是什么类型的参数都可以被绑定并调用。
问题也就是在于此。
我们也知道,int等类型是不继承于Object类型的。
但是假如目标对象的方法中是int参数,那么,在这个通知里,应该出现一个类型转换错误才对。
可事实上,不但没有错误,而且int参数还能被输出。
究竟里面的实现代码是怎么做到的呢?
希望看到这个文章的达人能指教一下。。
呵呵(本人近来有点忙,只能以后再弄了。)