public static void main(String[] args) {
//创建一个ArrayList的代理类对象
ArrayListProxy proxy=new ArrayListProxy();
//通过代理类添加数据
proxy.arraylist.add("MIUI 5");
//通过代理类获取集合的长度
proxy.arraylist.size();
}
//创建一个代理类
static class ArrayListProxy
{
@SuppressWarnings("unchecked")
List<String> arraylist=(List<String>) Proxy.newProxyInstance(
ArrayListProxy.class.getClassLoader(),
new Class[]{ List.class },
new InvocationHandler() {
ArrayList<Object> target = new ArrayList<Object>();
public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {
//获取开始的时间
long starTtime=System.currentTimeMillis();
//休眠一秒钟
TimeUnit.SECONDS.sleep(1);
Object obj = method.invoke(target, args);
//获取结束的时间
long endTime = System.currentTimeMillis();
System.out.println("Method:"+method.getName()+";耗时:"+(endTime-starTtime)/1000+"秒");
return obj;
}
});
}
}
|