动态代理问题
想动态代理TreeSet集合,代理类能用的方法只能是Set集合里面的方法吗?难道不能用代理类的对象调用TreeSet集合特有的方法吗?(比如pollFirst方法)
求大神解答!!!
package com.lianxi.test02;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class Test1 {
public static void main(String[] args) {
final TreeSet ts = new TreeSet();
Set proxy = (Set)Proxy.newProxyInstance(TreeSet.class.getClassLoader(),
TreeSet.class.getInterfaces(),
new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
long beginTime = System.currentTimeMillis();
Object retVal = method.invoke(ts, args);
long endTime = System.currentTimeMillis();
System.out.println(method.getName()+" running time is "+(endTime-beginTime));
return retVal;
}
});
proxy.add("Tom");
proxy.add("Tommy");
proxy.add("Ben");
System.out.println(proxy.toString());
}
}