为什么方法内部类中的方法要调用外面的局部变量,局部变量要使用final来修饰? target 和adrice- //得到一个代理类
- public static Object getProxy(final Object target, final Advice advice){
- // 创建一个proxy类的对象,
- Object proxy = Proxy.newProxyInstance(
- target.getClass().getClassLoader(),
- target.getClass().getInterfaces(),//接口
- //InvocationHandler类的对象,使用匿名内部类创建
- new InvocationHandler() {
- //重写了invoke方法
- @Override
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- advice.before();
- Object objVal = method.invoke(target, args);
- advice.after();
- return objVal;
- }
- });
- return proxy;
- }
复制代码 |