动态代理
来源:互联网 发布:三维模型设计软件 编辑:程序博客网 时间:2024/06/02 03:42
下面是我写的一个ArrayList类的代理,实现和ArrayList中完全相同的功能,并可以计算每个方法运行的时间。
有个问题不是很明白,在main函数中调用getproxy()方法时,返回的为什么不可以是collection的子类ArrayList呢?
public class ProxyDemo2 {@SuppressWarnings("unchecked")public static void main(String[] args) {ArrayList<String> target = new ArrayList<String>();MyAdevice adevice = new MyAdevice();Collection<String> proxy1 =(Collection<String>) getproxy(target, adevice);//ArrayList proxy1 = (ArrayList) getproxy(target, adevice);proxy1.add("sb");proxy1.add("sdfsdfasdfa");proxy1.contains("sb");proxy1.clear();System.out.println(proxy1.size());System.out.println(proxy1.getClass().getName());}public static Object getproxy(final Object target,final Adevice adevice){Object proxy1 = Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces(),new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {adevice.beforemethod(method);Object obj = method.invoke(target, args);adevice.aftermethod(method);return obj;}});return proxy1;}}
求高手指点!!
0 0
- 代理-->静态代理&动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- 动态代理
- FIFO存储深度(容量)计算
- C#对象克隆的战争
- javascript页面动态显示时间变化
- 修改论文格式的方法总结
- DOM4J 学习总结之 图示
- 动态代理
- 黑马程序员——Java基础---多线程
- ACM-百度之星资格赛之Energy Conversion——hdu4823
- 修改vs2010帮助文档(MSDN)路径
- Jacoco动态监测Web项目的覆盖率
- linux总结(1)——crontab、nohup、chage
- 基于socket的简单网络程序设计
- java 静态方法和实例方法的区别
- assert()函数用法总结