A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhousaowen 黑马帝   /  2011-7-20 16:39  /  2281 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Collection proxy31 = (Collection) Proxy.newProxyInstance(
                                Constructor.class.getClassLoader(),
                                new Class[] { Collection.class }, new InvocationHandler() {
                                        ArrayList obj = new ArrayList();

                                        @Override
                                        public Object invoke(Object proxy, Method method,
                                                        Object[] args) throws Throwable {
                                                // TODO Auto-generated method stub

                                                long starttime = System.currentTimeMillis();
                                                Object retval = method.invoke(obj, args);
                                                long endtime = System.currentTimeMillis();
                                                System.out.println(method.getName() + " "
                                                                + "the time of running" + ":"
                                                                + (endtime - starttime));
                                                return retval;
                                        }
                                });
                     proxy31.add("zhou");
                     proxy31.add("shao");
                    proxy31.add("wen");
                   System.out.println(proxy31.size());

  运行结果:
add the time of running:0
add the time of running:0
add the time of running:0
size the time of running:0
3

此时ArrayList obj = new ArrayList();在invoke()外面,obj是作为一个成员变量,所以add() 和size()操作的是同一个。当语句放到invoke()里面的时候,add()调用一次invoke()都是操作一个新的obj。这样size()得到的结果为0

评分

参与人数 1技术分 +2 收起 理由
admin + 2 这问题问得我都不想看,看在新人的份上加2分

查看全部评分

2 个回复

倒序浏览
黑马网友  发表于 2011-7-21 00:27:10
沙发
为啥我新人的时候没有加分~.....

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 再加一分

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-21 00:39:05
藤椅
强烈建议提问题的时候把问题描述清楚,要不然谁也帮不了你啊!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马