问题:写一个ArrayList类的代理,实现和ArrayList中完全相同的功能,并可以计算每个方法运行的时间
解决方案 »
- Swing画QQ界面
- Java拼图游戏算法上的问题
- 求教 事件处理 问题
- 编译出错,但不是很明白,请指教.
- 请教<html:cancel>标签的property属性值有什么作用??感谢
- 绝对优质JAVA版本OA系统技术转让与合作!!!
- 问一个很菜的问题!!
- Java中的"值传递"和"引用传递"各是用在什么情况下?"弱引用机制"是"引用传递"吗?
- 麻烦帮我看下有什么错!!!
- panel与scrollpanel的滚动简单问题,80分,请进-->!!!!!!!!!!!!!!!!!!
- java FileLock在win7下和ubuntu下行为不一样?
- java里怎么在有继承的情况下判断出由父类生成的类
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 ListProxy {
public static void main(String[] args) throws Exception {
List<String> list = newList(String.class);
list.add("abc");
System.out.println(list);
}
@SuppressWarnings("unchecked")
public static <T> List<T> newList(Class<T> elementType) {
return (List<T>)Proxy.newProxyInstance(List.class.getClassLoader(), new Class[]{List.class}, new InvocationHandler() {
private List<T> realList = new ArrayList<T>();
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
long start = System.nanoTime();
Object ret = method.invoke(realList, args);
long end = System.nanoTime();
System.out.println("调用" + method.getName() + "耗时:" + (end - start) + "纳秒");
return ret;
}
});
}
}