没人回额?补充一下问题吧,贴段代码上来。
- public class ProxyTest {
- public static void main(String[] args) {
- List<String> array = new ArrayList<String>();
- //如果哪天我的程序要交付了,不想用这个代理算时间了,那该怎么办呢?
- List<String> strs = (List<String>)getProxy(array);
- strs.add("1");
- strs.get(0);
- strs.remove(0);
- }
- /**
- * 这个代理其实就是想打印方法的运行时间的
- * @param target
- * @return
- */
- private static Object getProxy(final Object target) {
- Object obj = Proxy.newProxyInstance(target.getClass().getClassLoader(),
- new Class[]{List.class},
- new InvocationHandler() {
- @Override
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- System.out.println("before:" + System.currentTimeMillis());
- Object obj = method.invoke(target, args);
- System.out.println("after" + System.currentTimeMillis());
- return obj;
- }
- });
- return obj;
- }
- }
复制代码 |