700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 手动实现JDK动态代理 报错:$Proxy0 cannot be cast to异常

手动实现JDK动态代理 报错:$Proxy0 cannot be cast to异常

时间:2018-09-26 21:10:00

相关推荐

手动实现JDK动态代理 报错:$Proxy0 cannot be cast to异常

上面我手动实现Proxy代理对象,但是却报错

查阅资料后发现,根本原因在于第二个参数,用法错误

Class.getInterfaces() 主要作用是获取某类所实现的接口所有接口,返回值Class<?>[] ,而我竟然是获取接口的接口,所以出错了

解决办法:

一.用该接口的实现类去 .Class.getInterfaces()

我这里没有去实现该接口,所以没有编写子类,因此用的第二种方法获取接口

二.new Class[]{代理接口.class},

例如:

new Class[]{UserOrderFeign.class}

正确操作

public static void main(String[] args) {UserOrderFeign o = (UserOrderFeign)Proxy.newProxyInstance(UserServiceController.class.getClassLoader(),//UserOrderFeign.class.getInterfaces(),new Class[]{UserOrderFeign.class},new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("111");return "hahaha";}});String s = o.testFeign();System.out.println(s);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。