当前位置: 代码迷 >> J2EE >> 编程求解!该怎么解决
  详细解决方案

编程求解!该怎么解决

热度:92   发布时间:2016-04-22 02:18:29.0
编程求解!
写一个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);            }}
  相关解决方案