首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

编程求解!该怎么解决

2012-03-07 
编程求解!写一个ArrayList类的代理,其内部实现和ArrayList中完全形同的功能,并可以计算每个方法运行的时间

编程求解!
写一个ArrayList类的代理,其内部实现和ArrayList中完全形同的功能,并可以计算每个方法运行的时间

[解决办法]
给你写了一个动态代理,自个看看把,有main方法。

Java code
package util;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.ArrayList;import java.util.List;public class ArrayListProxy implements InvocationHandler {    List list = null;        public ArrayListProxy(){        this.list = new ArrayList();    }        public Object invoke(Object proxy, Method method, Object[] args)            throws Throwable {            long starttime = System.currentTimeMillis();            Object o = method.invoke(list, args);            System.out.println(method.getName()+"() 执行了"+(System.currentTimeMillis()-starttime));            return o;    }        public static List getArrayList(){        return (List)Proxy.newProxyInstance(ArrayList.class.getClassLoader(), new Class[]{List.class}, new ArrayListProxy());    }    public static void main(String[] args) {        List list = getArrayList();        for(int i = 10000; i < 20005; i ++){            list.add(i);        }        list.size();        List list2 = getArrayList();        for(int i = 10006; i < 40021; i ++){            list2.add(i);        }        list.contains(list);            }} 

热点排行