我在使用Java的动态代理的时候,implements InvocationHandler,实现它的方法invoke,代码是这样的:
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
{
Object result = null;
System.out.println("before invoke method :" + method.getName());
result =method.invoke(this.targetObj, args);
System.out.println("after invoke method : " + method.getName());
return result;
}
----------------------------------------------------------------
但是在运行后,在控制台是这样的显示:
before invoke method :getTheNum
after invoke method : getTheNum
the number is : 100
为什么会先执行1.3句,然后再执行第二句??
请大侠赐教!
呵呵~~谢谢.其实在invoke方法里是按顺序执行的.首先执行第一句开始.然后调用方法得到result.最后打印第三句结束.完了再把result返回给代理类代理的方法.
所以看起来顺序是倒着的.
我一开始为什么没有想到呢.真傻!
|