关于代理模式的问题

[size=large]在java与模式这本书里看到代理模式这章有这么一段代码
public class VectorProxy implements InvocationHandler{

private Object proxyObj;

public VectorProxy(Object obj){
proxyObj=obj;
}
public static Object factory(Object obj){
[color=red] Class cls=obj.getClass();
return
cls.getClass(),
cls.getInterfaces(),
new VectorProxy(obj);
}[/color] public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{
System.out.println("before calling "+method);
if(args!=null){
for(int i=0;i<args.length;i++){
System.out.println(args[i]+" ");
}
}
Object o=method.invoke(proxyObj,args);
System.out.println("after calling "+method);
return o;
}
/**

  • @param args */ public static void main(String[] args) { // TODO Auto-generated method stub List v=null; v=(List) factory(new Vector(10)); v.add("new"); v.add("York"); } 可是运行不通在这块出问题 return cls.getClass(), cls.getInterfaces(), new VectorProxy(obj); 望指教[/size]

这是作者从网上粘贴来的代码吧?怪不得他,现在出书稿费比以前少多了。

原本大概应该是:

return Proxy.newProxyInstance(cls.getClassLoader(), cls.getInterfaces(), new VectorProxy(obj));