为什么会报错?能不能说说晕倒这种错误时,通常要怎么做?先谢谢~~
package chengengsheng.proxy;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.List;
import java.util.Vector;public class ProxyTest implements InvocationHandler
{
private Object obj; public ProxyTest(Object object)
{
this.obj = object;
} public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable
{
System.out.println("Star");
method.invoke(obj, args);
System.out.println("Over");
return null;
} public static void main(String[] args)
{
List v = new Vector();
InvocationHandler p = new ProxyTest(v);
Class<?> classty = p.getClass();
List l = (List) Proxy.newProxyInstance(classty.getClassLoader(),
v.getClass().getInterfaces(), p);
l.add("mipaifu"); //第35行
}}
报错:
Star
Over
Exception in thread "main" java.lang.ClassCastException: java.util.Vector cannot be cast to java.lang.Boolean
at $Proxy0.add(Unknown Source)
at chengengsheng.proxy.ProxyTest.main(ProxyTest.java:35)
package chengengsheng.proxy;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.List;
import java.util.Vector;public class ProxyTest implements InvocationHandler
{
private Object obj; public ProxyTest(Object object)
{
this.obj = object;
} public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable
{
System.out.println("Star");
method.invoke(obj, args);
System.out.println("Over");
return null;
} public static void main(String[] args)
{
List v = new Vector();
InvocationHandler p = new ProxyTest(v);
Class<?> classty = p.getClass();
List l = (List) Proxy.newProxyInstance(classty.getClassLoader(),
v.getClass().getInterfaces(), p);
l.add("mipaifu"); //第35行
}}
报错:
Star
Over
Exception in thread "main" java.lang.ClassCastException: java.util.Vector cannot be cast to java.lang.Boolean
at $Proxy0.add(Unknown Source)
at chengengsheng.proxy.ProxyTest.main(ProxyTest.java:35)
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.List;
import java.util.Vector;public class ProxyTest implements InvocationHandler{
private Object obj; public ProxyTest(Object object)
{
this.obj = object;
} public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable
{
System.out.println("Start");
Object o=method.invoke(obj, args);
System.out.println("Over");
return o;
} public static void main(String[] args)
{
List v = new Vector(); InvocationHandler p = new ProxyTest(v);
Class<?> classty = p.getClass();
List l = (List) Proxy.newProxyInstance(classty.getClassLoader(),
v.getClass().getInterfaces(), p);
l.add("mipaifu"); //第35行
for(Object o:l){
System.out.println(""+o);
}
}}