黑马程序员技术交流社区
标题:
proxy类问题
[打印本页]
作者:
周洋
时间:
2012-4-4 20:48
标题:
proxy类问题
proxy类有一个静态方法getproxyClass(ClassLoader loader, Class<?>...... interfaces),如果只有一个接口时,通常用的是与接口相同的类加载器。那么如果有多个接口时,应该用哪个类加载器呢?
作者:
田啸
时间:
2012-4-4 21:10
本帖最后由 田啸 于 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;
}
作者:
翟友伟
时间:
2012-4-6 12:12
newProxyInstance(
Collection.class.getClassLoader(), ---------------------------------- 不同的接口 对于不同的类加载器 实现类.class.getClassLoader()
new Class[]{Collection.class}, new Class[]{Collection1.class,Collection2.class,..........}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2