本帖最后由 田啸 于 2012-4-4 21:22 编辑
loader 是你想要定义的代理类的类加载器
interfaces - 该代理类要实现的接口列表,一个代理类可以实现一个到多个接口
你需要先确定你想要的代理类,再确定你想要的代理类所需要实现的接口,而不是根据一堆接口去确定代理类
如下面的例子,是获取代理类的通用方法:
private static Object getProxy(final Object target,final Advice advice) {
Object proxy = Proxy.newProxyInstance(
target.getClass().getClassLoader(), //目标代理类的ClassLoader
target.getClass().getInterfaces(),//通过目标代理类获取对应的接口
new InvocationHandler(){
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
advice.BeforeMethod(method);
Object reVal = method.invoke(target, args);
advice.AfterMethod(method);
return reVal;
}
}
);
return proxy;
} |